[혼공컴운] 4주차_프로세스와 스케줄링

이경현·2024년 1월 29일
0

💻 혼자 공부하는 컴퓨터구조 + 운영체제 4주차


✍️4주차 프로세스와 스케줄링

이번 4주차에 공부한 내용은 1. 운영체제. 2. 프로세스와 스레드. 3. CPU 스케줄링에 대해 학습했습니다.

주요 내용은 다음과 같습니다.

  • 운영체제가 하는 역할
  • 프로세스와 스레드에 대한 이해
  • CPU 스케줄링

목차
1. 운영체제 시작하기
   1-1. 운영체제를 알아야 하는 이유
   1-2. 운영체제의 큰 그림
2. 프로세스와 스레드
   2-1. 프로세스 개요
   2-2. 프로세스 상태와 계층 구조
   2-3. 스레드
3. CPU 스케줄링
   3-1. CPU 스케줄링 개요
   3-2. CPU 스케줄링 알고리즘

1. 운영체제시작하기

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

운영체제의 가장 중요한 역할은 자원관리이다.

이름설명
운영체제실행할 프로그램(ex. 응용 프로그램)에 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램


메모리의 구분

이름설명
사용자(User) 영역사용자가 이용하는 응용 프로그램이 적재되는 영역
커널(Kernel) 영역컴퓨터 부팅 시에 운영체제가 로드되는 영역

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

커널은 운영체제의 핵심 서비스를 담당한다.

이름설명
커널(Kernel)자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행하게 하는 기능 등 운영체제의 핵심 서비스

 

커널에 포함되는 서비스커널에 포함되지 않는 서비스
자원에 접근하고 조작하는 기능사용자 인터페이스(GUI, CLI)
프로그램을 올바르게 실행시키는 기능

 

이름설명
이중 모드CPU가 명령어를 실행하는 모드를 커널 모드와 사용자 모드로 구분
시스템 호출운영체제의 서비스를 제공받기 위해 커널 모드로 전환하는 방법

 

대표적인 운영체제 서비스
프로세스 관리
자원 접근 및 할당
파일 시스템 관리

2. 프로세스와 스레드

2-1. 프로세스 개요

이름설명
프로세스실행 중인 프로그램

 

프로세스 종류설명
포그라운드 프로세스사용자가 보는 앞에서 실행되는 프로세스
백그라운드 프로세스사용자가 보지 못하는 뒤편에서 실행되는 프로세스(데몬, 서비스)

 

이름설명
문맥 교환프로세스 간에 실행을 전환하는 것

 

PCB가 담고 있는 값의 종류설명
프로세스 ID특정 프로세스 식별을 위해 부여한 고유 번호
레지스터 값해당 프로세스가 실행하며 사용했던 프로그램 카운터를 비롯한 레지스터 값 저장
프로세스 상태현재 프로세스가 어떤 상태인지 기록(IO 상태, CPU 상태 등)
CPU 스케줄링 정보프로세스가 언제 어떤 순서로 CPU를 할당받을지에 대한 정보
메모리 관리 정보프로세스가 어느 주소에 저장되어 있는지에 대한 정보(베이스 레지스터, 한계 레지스터 값 등)
사용한 파일과 입출력장치 목록어떤 입출력장치가 할당되었는지, 어떤 파일을 열었는지에 대한 정보

 

프로세스 사용자 영역설명
코드 영역(텍스트 영역)기계어로 이루어진 명령어 저장. 읽기 전용 공간
데이터 영역프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간(전역변수)
힙 영역프로그래머가 직접 할당할 수 있는 저장 공간(공간 반환 필요)
스택 영역데이터를 일시적으로 저장하는 공간(매개 변수, 지역변수)
  • 정적 할당 영역 : 코드 영역과 데이터 영역은 크기가 고정된 영역
  • 동적 할당 영역 : 힙 영역과 스택 영역은 프로세스 실행 과정에서 그 크기가 변할 수 있는 영역

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

프로세스 상태설명
생성프로세스를 생성 중인 상태(PCB 할당)
준비CPU 할당을 기다리는 상태
실행CPU를 할당받아 실행 중인 상태
대기입출력장치의 작업을 기다리는 상태
종료프로세스가 종료된 상태. PCB와 메모리 정리

 

이름설명
부모 프로세스프로세스가 다른 프로세스를 생성한 경우 프로세스를 생성한 프로세스
자식 프로세스생성된 프로세스

 

이름설명
프로세스 계층 구조프로세스가 새로운 프로세스를 낳는 구조

2-3. 스레드

이름설명
스레드프로세스 내의 실행 흐름 단위

 

이름설명
멀티프로세스여러 프로세스를 동시에 실행하는 것
멀티스레드여러 스레드로 프로세스를 동시에 실행하는 것

3. CPU 스케줄링

3-1. CPU 스케줄링 개요

이름설명
CPU 스케줄링공정하고 합리적으로 CPU 자원을 배분하는 방법을 의미

 

PCB(Process Control Block)프로세스는 우선순위를 가지고 있고 이는 PCB에 명시됨.

 

준비 큐CPU 할당을 기다리는 프로세스들을 위한 큐
대기 큐입출력장치를 기다리는 프로세스들을 위한 큐

 

선점형 스케줄링프로세스가 이용 중인 자원을 빼앗을 수 있음
비선점형 스케줄링프로세스가 이용 중인 자원을 빼앗을 수 없음

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

CPU 스케줄링 알고리즘설명
선입 선처리 스케줄링준비 큐에 삽입된 순서대로 CPU 할당
최단 작업 우선 스케줄링준비 큐에 삽입된 프로세스 중 CPU 사용 시간의 길이가 가장 짧은 프로세스부터 CPU 할당
라운드 로빈 스케줄링정해진 시간만큼만 돌아가며 PCU 할당
우선순위 스케줄링가장 높은 우선순위를 가진 프로세스에 CPU 할당
다단계 피드백 큐 스케줄링프로세스들이 큐 사이를 이동할 수 있는 다단계 큐 스케줄링

4주차 기본 미션

p. 304의 확인 문제 1번 풀고 인증하기	
  1. 생성 상태
  2. 준비 상태
  3. 실행 상태
  4. 종료 상태
  5. 대기 상태

4주차 선택 미션

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

A -> B -> C -> D

profile
게임 개발자 지망생

0개의 댓글