책의 특징
Part 1. OS(Operating System)
하나의 토픽을 알기보다는 전체적인 발전 과정을 이해하고 도식화하여 기술을 설명하는 연습이 필요합니다. 운영체제(Operating System), Windows OS의 Booting 순서, Process, PCB, TCB, Multi Thread, 마이크로 커널과(Micro Kernel)과 모노리틱 커널(Monolithic Kernel), 실시간 시스템, Tiny OS, 다중 프로그래밍 환경에서 이중 모드(Dual Mode), 운영체제에서의 인터럽트(Interrupt), Process 간 데이터 통신 등 운영체제의 제반 사항을 학습하는 Part입니다. [관련 토픽 - 26개]
Part 2. Unix 및 Linux 운영체제
유닉스(Unix) 운영체제, Unix 운영체제 부팅(Booting) 과정, 파일 시스템, i-node, Super Block, Unix OS(운영체제)에서 Process 상태 전이도, Unix System Cal, fork()함수, Unix System에서 파일접근제어 방식인 umask, Unix 시스템의 IPC(Inter-Process Communication), Linux 커널, Linux System에서의 프로세스 동기화를 위한 스핀락(Spin-Lock) 등 출제 범위에 포함되어 있어 자주 출제되는 분야로 Unix 운영체제와 Linux 운영체제에 대해 전반적으로 학습할 수 있는 Part입니다. [관련 토픽 - 21개]
Part 3. 스케줄링(Scheduling)
CPU Scheduling, 운영체제에서 Process의 5가지 상태(State), 선점 및 비선점형 스케줄링, 각 스케줄링 방식에 대한 기술과 비교, 우선순위 역전(Priority Inversion) 발생 원인과 방지 방법, Hard Real Time 스케줄링 방식인 RM(Rate Monotonic)과 EDF(Earliest Deadline First), HDD의 Disk 스케줄링 기법, 디스크 스케줄링 알고리즘 등 운영체계에서 사용되는 스케줄링에 대한 이해와 실제 예시를 작성해 봄으로써 실전에서 고득점을 획득할 수 있습니다. [관련 토픽 - 30개]
Part 4. 프로세스 동기화(Process Synchronization)와 문맥 교환(Context Switching)
세마포어(Semaphore), 모니터(Monitor), 계수형 세마포어(Semaphore), 뮤텍스(MUTEX), Semaphore를 이용한 리소스 공유 방법과 태스크 간 동기화 방법, 동기화 기법인 스핀락(Read/Write Spin Lock), 은행가 알고리즘(Banker’s Algorithm). 교착상태(Dead Lock), Live Lock, 상호 배제(Mutual Exclusion), 자원할당그래프, 경쟁조건(Race Condition), 문맥 교환(Context Switching), 운영체제 내부 모듈 중 Dispatcher의 주요 기능과 동작, 마이크로 커널(Kernel)의 동작 등 항상 출제되는 분야로 개념과 어떻게 활용되는지에 대해 정확히 답안에 기술할 수 있어야 합니다. 매우 중요한 토픽들입니다. [관련 토픽 - 23개]
Part 5. Memory 제어 기술
메모리 계층구조(Memory Hierarchy), 캐시 메모리 설계(Cache Memory Design), Cache Miss, Cache 일관성(Coherency) 문제 원인 및 해결책, 메모리 할당 기법, Working Set과 Page Fault Frequency 비교, 시간 지역성(Temporal Locality)과 공간 지역성(Spatial Locality), Thrashing의 발생 원인 및 해결, 가상메모리(Virtual Memory)의 사용 이유, 가상메모리의 Paging 및 Segmentation 기법, 운영체제에서 페이지 교체 알고리즘, 메모리 누수(Memory Leak), 메모리 인터리빙(Memory Interleaving), Caching, Buffering, Spooling 등에 대해 답안화할 수 있도록 하였습니다. [관련 토픽 - 32개]
Part 6. C-언어 외
C언어에서의 지역변수, C언어 Extern/Auto/Static/register 변수 비교, C언어에서 Macro/Function /Inline의 공통점과 차이점, Processor의 주소 지정 방식, 블록(Block)의 크기가 프로그램(Program)에 미치는 영향, CPU 명령어 형식과 CPU 명령어 Cycle 이해, 병행성(Concurrency)과 병렬성(Parallelism), App. 등록 절차, 모바일 App.의 종류 등 기출문제 위주로 작성하였습니다. [관련 토픽 - 14개]
Part 7. I/O 제어 및 신기술
Interrupt 구동 I/O 방식과 Programmed I/O, 운영체제에서 I/O 디바이스(Device), Application과 Kernel 통신방법에서 Non Blocked I/O와 Blocked I/O 방식 비교, 비동기 I/O(Asynchronous I/O) 제어 방식, Embedded System과 Embedded Software의 특성, System Tuning 절차와 방법, Cloud Computing, System 증설이 필요할 경우 성능 분석과 용량 산정 시의 고려사항, UI(User Interface)와 UX(User Experience) 비교, 가상화(Virtualization), 하이퍼바이저(Hypervisor), 메타버스(Metaverse) 등 운영체제의 I/O 제어기술과 운영체제 차원에서의 신기술에 대해서도 학습하도록 하였습니다. [관련 토픽 - 31개]