Chapter 09 운영체제 시작하기
09-1 운영체제(Operating System)를 알아야 하는 이유
- 운영체제는 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램입니다.
- 운영체제와의 대화를 통해 하드웨어와 프로그램을 더 깊이 이해하고, 문제 해결의 실마리를 찾을 수 있습니다.
** 운영체제는 컴퓨터 구조의 각 부품이 제 성능을 발휘할 수 있도록 전반적인 관리와 자원 할당을 지원해주는 소프트웨어. 초심자에게는 컴퓨터 구조와 운영체제에 대해 같이 알아가는 게 좋은 방법이라고 생각됨.
09-2 운영체제의 큰 그림
- 커널(Kernel)은 운영체제의 핵심 기능을 담당합니다.
- 이중 모드(Dual Mode)는 CPU가 명령어를 실행하는 모드를 커널 모드와 사용자 모드로 구분하는 방식입니다.
- 시스템 호출(System Call)은 운영체제의 서비스를 제공받기 위해 커널 모드로 전환하는 방법입니다.
- 대표적인 운영체제 서비스로 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리가 있습니다.
Chapter 10 프로세스와 스레드
10-1 프로세스(Process) 개요
- 프로세스는 실행 중인 프로그램입니다. 프로세스의 종류에는 포그라운드 프로세스 (foreground process)와 백그라운드 프로세스(Background process)가 있습니다.
- 운영체제는 프로세스 제어 블록(PCB, Process Control Block)을 통해 여러 프로세스를 관리합니다.
- 프로세스 간에 실행을 전환하는 것을 문맥 교환(Context switching)이라고 합니다.
- 프로세스 사용자 영역에 크게 코드 영역(Code segment), 데이터 영역(Data segment), 스택 영역(Stack segment), 힙 영역(Heap segment)으로 나뉘어 배치됩니다.
** 프로세스 제어 블록(PCB)에 들어 있는 목록을 알아두면 좋을 듯 합니다.
10-2 프로세스 상태(Process State)와 계층 구조
- 프로세스 상태에는 생성, 준비, 실행, 대기, 종료가 있습니다.
- 프로세스가 다른 프로세스를 생성한 경우 프로세스를 생성한 프로세스를 부모 프로세스, 생성된 프로세스를 자식 프로세스라고 부릅니다.
- 많은 운영체제는 프로세스가 프로세스를 낳는 프로세스 계층 구조로 프로세스들을 관리합니다.
10-3 스레드(Thread)
- 스레드는 프로세스 내의 실행 흐름 단위입니다.
- 여러 프로세스를 동시에 실행하는 것을 멀티프로세스라고 하고, 여러 스레드로 프로세스를 동시에 실행하는 것을 멀티스레드라고 합니다.
** 스레드(Thread)는 명령어의 한 줄기, 프로그램 제어 흐름 한 가닥 정도를 나타낸다고 합니다.
Chapter 11 CPU 스케줄링
11-1 CPU 스케줄링 개요(CPU scheduling)
- CPU 스케줄링은 공정하고 합리적으로 CPU 자원을 배분하는 방법을 의미합니다.
- 프로세스는 우선순위(Priority)를 가지고 있고, 이는 PCB에 명시됩니다.
- 운영체제는 효율적인 스케줄링을 위해 스케줄링 큐를 사용합니다.
- 준비 큐(Ready queue)는 CPU 할당을 기다리는 프로세스들을 위한 큐를 의미합니다.
- 대기 큐(Waiting queue)는 입출력장치를 기다리는 프로세스들을 위한 큐를 의미합니다.
- 선점형 스케줄링(Preemptive scheduling)은 프로세스가 이용 중인 자원을 빼앗을 수 있습니다.
- 비선점형 스케줄링(Non-preemptive scheduling)은 프로세스가 이용 중인 자원을 빼앗을 수 없습니다.
11-2 CPU 스케줄링 알고리즘
- 선입 선처리 스케줄링(FCFS 스케줄링, First Come First Served Scheduling) 알고리즘은 준비 큐에 삽입된 순서대로 CPU를 할당합니다.
- 최단 작업 우선 스케줄링(Shortest Job First Scheduling) 알고리즘은 준비 큐에 삽입된 프로세스들 중 CPU 사용 시간의 길이가 가장 짧은 프로세스부터 CPU를 할당합니다.
- 라운드 로빈 스케줄링(Round Robin Scheduling) 알고리즘은 정해진 시간만큼만 돌아가며 CPU를 할당합니다.
- 우선순위 스케줄링(Priority Scheduling) 알고리즘은 가장 높은 우선순위를 가진 프로세스에 CPU를 할당합니다.
- 다단계 피드백 큐 스케줄링(Multilevel Feedback Queue Scheduling) 알고리즘은 프로세스들이 큐 사이를 이동할 수 있는 다단계 큐 스케줄링입니다.
[기본 숙제]
304쪽 확인 문제 1번 풀고 인증하기
1. 다음은 프로세스 상태를 보여주는 상태 다이어그램입니다. ①부터 ⑤까지 올바른 상태를 적어 보세요.
① 생성 ② 준비 ③ 실행 ④ 종료 ⑤ 대기
[추가 숙제]
Ch.11(11-2) 준비 큐에 A,B,C,D 순으로 삽입되었다고 가정했을 때, 선입 선처리 스케줄링 알고리즘을 적용하면 어떤 프로세스 순서대로 CPU를 할당받는지 풀어보기
선입 선처리 스케줄링(FCFS, First Come First Served Scheduling)의 경우, 준비 큐(Ready Queue)에 A, B, C, D 순서로 삽입되면 들어온 순서대로 A, B, C, D가 CPU를 할당받습니다.
이때 처리시간이 가장 긴 작업이 가장 먼저 들어온 경우, 그 뒤에 있는 짧은 작업들도 덩달아 대기해야 하는 호위 효과(Convoy Effect)가 발생합니다. '호위효과'란 군대나 행진에서 가장 느린 부대나 차량 때문에 마치 호위대처럼 전체 진행이 지연되는 상황을 비유적으로 뜻하는 말이라고 합니다.
알고리즘이 단순한 것이 이점일 수 있지만, 최악의 경우에는 시스템의 전체적인 성능에 많은 악영향을 줍니다.
'컴퓨터책' 카테고리의 다른 글
[혼공컴운] 6주차_컴퓨터 구조+운영체제 14장~15장 & 책리뷰 (0) | 2025.01.19 |
---|---|
[혼공컴운] 5주차_컴퓨터 구조+운영체제 12장~13장 (0) | 2025.01.19 |
[혼공컴운] 3주차_컴퓨터 구조+운영체제 06장 ~ 08장 (0) | 2025.01.18 |
[혼공컴운] 2주차_컴퓨터 구조+운영체제 04장 ~ 05장 (0) | 2025.01.14 |
[혼공컴운] 1주차_컴퓨터 구조+운영체제 01장 ~ 03장 (0) | 2025.01.12 |