4주차#
이번주에 제출하고 나면 다음주는 혼공학습단 방학 기간이라 한주는 제출하지 않고 쉴 수 있어요.
이번에는 정해진 기간에 정해진 분량을 읽어보니 그래도 조금씩 읽게 되는 것 같아서 좋아요.
그리고 책마다 분량이 다를 것 같지만 선택한 책이니 끝까지 읽어봐야겠어요!
C09#
운영체제는 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램이에요.
운영체제와의 대화를 통해 하드웨어와 프로그램을 더 같이 이해하고 문제 해결의 실마리를 찾을 수 있어요.
커널은 운영체제의 핵심 기능을 담당해요.
이중 모드는 CPU가 명령어를 실행하는 모드를 커널 모드와 사용자 모드로 구분하는 방식이에요.
시스템 호출은 운영체제의 서비스를 제공받기 위해 커널 모드로 전환하는 방법이에요.
대표적인 운영체제 서비스로 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리가 있어요.
C10#
프로세스는 실행 중인 프로그램이에요. 프로세스의 종류에는 포그라운드 프로세스와 백그라운드 프로세스가 있어요.
운영체제는 프로세스 제어 블록을 통해 여러 프로세스를 관리해요.
프로세스 간의 실행을 전환하는 것을 문맥 교환이라고 해요.
프로세스 사용자 영역에 크게 코드 영역, 데이터 영역, 스택 영역, 힙 영역으로 나뉘어 배치돼요.
프로세스 상태에는 생성, 준비, 실행, 대기, 종료가 있어요.
프로세스가 다른 프로세스를 생성한 경우 프로세스를 생성한 프로세스를 부모 프로세스, 생성된 프로세스를 자식 프로세스라고 불러요.
많은 운영체제는 프로세스가 프로세스를 낳는 프로세스 계층 구조로 프로세스들을 관리해요.
스레드는 프로세스 내의 실행 흐름 단위예요.
여러 프로세스를 동시에 실행하는 것을 멀티프로세스라고 하고, 여러 스레드로 프로세스를 동시에 실행하는 것을 멀티스레드라고 해요.
C11#
CPU 스케줄링은 공정하고 합리적으로 CPU 자원을 배분하는 방법을 의미해요.
프로세스는 우선순위를 가지고 있고, 이는 PCB에 명시돼요.
운영체제는 효율적인 스케줄링을 위해 스케줄링 큐를 사용해요.
준비 큐는 CPU 할당을 기다리는 프로세스들을 위한 큐를 의미해요.
대기 큐는 입출력장치를 기다리는 프로세스들을 위한 큐를 의미해요.
선점형 스케줄링은 프로세스가 이용 중인 자원을 빼앗을 수 있어요.
비선점형 스케줄링은 프로세스가 이용 중인 자원을 빼앗을 수 없어요.
선입 선처리 스케줄링 알고리즘은 준비 큐에 삽입된 순서대로 CPU를 할당해요.
최단 작업 우선 스케줄링 알고리즘은 준비 큐에 삽입된 프로세스들 중 CPU 사용 시간의 길이가 가장 짧은 프로세스부터 CPU를 할당해요.
라운드 로빈 스케줄링 알고리즘은 정해진 시간만큼만 돌아가며 CPU를 할당해요.
우선순위 스케줄링 알고리즘은 가장 높은 우선순위를 가진 프로세스에 CPU를 할당해요.
다단계 피드백 큐 스케줄링 알고리즘은 프로세스들이 큐 사이를 이동할 수 있는 다단계 큐 스케줄링이에요.
숙제#
p. 304의 확인 문제 1번(필수)#
정답
- 생성
- 준비
- 실행
- 종료
- 대기
추가 숙제(선택)#
문제: Ch.11(11-2) 준비 큐에 A, B, C, D 순으로 삽입되었다고 가정했을 때, 선입 선처리 스케줄링 알고리즘을 적용하면 어떤 프로세스 순서대로 CPU를 할당받는지 풀어보기
정답
먼저 요청한 프로세스부터 CPU에 할당하는 스케줄링 방식이므로 A, B, C, D 순으로 처리됨.
A가 준비 큐에서 가장 먼저 도착했으므로, CPU가 A에 할당돼요.
A의 실행이 끝난 후, CPU는 B에게 할당돼요.
B의 실행이 끝난 후, CPU는 C에게 할당돼요.
C의 실행이 끝난 후, CPU는 D에게 할당돼요.
All fixed set patterns are incapable of adaptability or pliability. The truth is outside of all fixed patterns.
— Bruce Lee