Computer Science/Operating System

[혼공컴운] 4주차_Chapter 09 ~ 11

kangkyunghyun 2026. 2. 8. 14:33
728x90
반응형

Chapter 09. 운영체제 시작하기

09-1. 운영체제를 알아야 하는 이유

운영체제 : 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 실행되도록 돕는 프로그램

운영체제와의 대화를 통해 하드웨어와 프로그램을 더 깊이 이해하고 문제 해결의 실마리를 찾을 수 있음

09-2. 운영체제의 큰 그림

  • 커널 : 운영체제의 핵심 기능 담당
  • 이중 모드 : CPU가 명령어를 실행하는 모드를 커널 모드와 사용자 모드로 구분하는 방식
  • 시스템 호출 : 운영체제의 서비스를 제공받기 위해 커널 모드로 전환하는 방법
  • 운영체제 서비스 : 프로세스 관리, 자원 접근 및 할당, 파일 시스템 관리

Chapter 10. 프로세스와 스레드

10-1. 프로세스 개요

  • 프로세스 : 실행 중인 프로그램
    • 포그라운드 프로세스 : 사용자가 보는 앞에서 실행되는 프로세스
    • 백그라운드 프로세스 : 사용자가 보지 못하는 뒤편에서 실행되는 프로세스
  • 프로세스 제어 블록(PCB) : 운영체제가 프로세스를 관리할 수 있도록 하는 것
  • 문맥 교환 : PCB로부터 문맥을 복구하여 새로운 프로세스를 실행
    • 문맥 : 하나의 프로세스 수행을 재개하기 위해 기억해야 할 정보
  • 프로세스 사용자 영역
    • 코드 영역(텍스트 영역) : 실행할 수 있는 코드, 기계어로 이루어진 명령어가 저장. read-only
    • 데이터 영역 : 프로그램이 실행되는 동안 유지할 데이터 저장 공간. 정적 할당 영역
    • 스택 영역 : 데이터를 일시적으로 저장하는 공간. 동적 할당 영역
    • 힙 영역 : 사용자가 직접 할당할 수 있는 저장 공간. 메모리 누수 위험 O. 동적 할당 영역

10-2. 프로세스 상태와 계층 구조

  • 프로세스 상태 : 생성, 준비, 실행, 대기, 종료
    • 생성 상태 : 메모리에 적재되어 PCB를 할당 받은 상태. 준비 상태가 되어 CPU의 할당을 대기
    • 준비 상태 : CPU를 할당받아 실행할 수 있지만, 차례가 아니기에 기다리는 상태.
    • 실행 상태 : CPU를 할당받아 실행 중인 상태. 일정 시간 동안만 CPU 사용 가능.
    • 대기 상태 : 프로세스 실행 도중 입출력장치를 사용하는 경우 작업이 끝나길 기다리는 상태.
    • 종료 상태 : 프로세스가 종료된 상태. 운영체제는 PCB와 프로세스가 사용한 메모리를 정리
  • 부모 프로세스 : 다른 프로세스를 생성한 프로세스
  • 자식 프로세스 : 부모 프로세스로부터 생성된 프로세스
  • 프로세스 계층 구조 : 많은 운영체제가 프로세스가 프로세스를 낳는 프로세스 계층 구조로 프로세스 관리
  • 프로세스 생성 기법 : 복제와 옷 갈아입기
    • fork : 자신의 복사본을 자식 프로세스로 생성
    • exec : 자신의 메모리 공간을 다른 프로그램으로 교체

10-3. 스레드

  • 스레드 : 프로세스 내의 실행 흐름 단위
  • 멀티프로세스 : 여러 프로세스를 동시에 실행하는 것
  • 멀티스레드 : 여러 스레드로 프로세스를 동시에 실행하는 것

Chapter 11. CPU 스케줄링

11-1. CPU 스케줄링 개요

  • CPU 스케줄링 : 공정하고 합리적으로 CPU 자원을 배분하는 방법
  • 우선순위 : 프로세스는 우선순위를 가지고 있고, PCB에 명시
  • 스케줄링 큐 : 운영체제가 효율적인 스케줄링을 위해 사용
  • 준비 큐 : CPU 할당을 기다리는 프로세스들을 위한 큐
  • 대기 큐 : 입출력장치를 기다리는 프로세스들을 위한 큐
  • 선점형 스케줄링 : 프로세스가 이용 중인 자원을 빼앗을 수 있음
  • 비선점형 스케줄링 : 프로세스가 이용 중인 자원을 빼앗을 수 없음

11-2. CPU 스케줄링 알고리즘

  • 선입 선처리(FCFS) 스케줄링 : 준비 큐에 삽입된 순서대로 CPU를 할당
  • 최단 작업 우선(SJF) 스케줄링 : 준비 큐에 삽입된 프로세스들 중 CPU 사용 시간의 길이가 가장 짧은 프로세스부터 CPU를 할당
  • 라운드 로빈 스케줄링 : 정해진 시간만큼만 돌아가며 CPU를 할당
  • 최소 잔여 시간 우선(SRT) 스케줄링 : 최단 작업 우선과 라운드 로빈을 합친 형태. 정해진 시간만큼 CPU를 사용하되, 다음 프로세스는 남아있는 작업 시간이 가장 적은 프로세스가 할당
  • 우선순위 스케줄링 : 가장 높은 우선순위를 가진 프로세스에 CPU를 할당
  • 다단계 큐 스케줄링 : 우선순위별로 준비 큐를 여러 개 사용하는 방식
  • 다단계 피드백 큐 스케줄링 : 프로세스들이 큐 사이를 이동할 수 있는 다단계 큐 스케줄링

기본 숙제

p. 304 확인 문제 1번

다음은 프로세스 상태를 보여주는 프로세스 상태 다이어그램입니다. 1부터 5까지 올바른 상태를 적어보세요.

  1. 생성
  2. 준비
  3. 실행
  4. 종료
  5. 대기

추가 숙제

Ch.11(11-2) 준비 큐에 A,B,C,D 순으로 삽입되었다고 가정했을 때, 선입 선처리 스케줄링 알고리즘을 적용하면 어떤 프로세스 순서대로 CPU를 할당 받는지 풀어보기

선입 선처리 스케줄링 알고리즘은 단순히 준비 큐에 삽입된 순서대로 프로세스들을 처리하는 비선점형 스케줄링 방식.

A, B, C, D 순으로 삽입되었으니 A, B, C, D 순으로 CPU를 할당 받음.

728x90
반응형

'Computer Science > Operating System' 카테고리의 다른 글

[혼공컴운] 6주차_Chapter 14 ~ 15  (0) 2026.02.08
[혼공컴운] 5주차_Chapter 12 ~ 13  (0) 2026.02.08