03. 프로세스 관리
프로그램의 실행 (Memory load)

원리
Address Translation
Virtual Memory
stack
data
code
Kernel Address Space
Kernel Address 공간의 내용

구조
운영체제의 Code
운영체제의 Data
운영체제의 Stack
사용자 프로그램이 사용하는 함수

사용자 정의 함수
라이브러리 함수
커널 함수
프로그램의 실행

User Defined Call & Library Function Call
System Call
프로세스의 개념

프로세스란?
프로세스의 문맥 (context)
문맥이란
CPU 수행 상태를 나타내는 hardware context
프로세스의 주소 공간
프로세스 관련 Kernel 자료 구조
PCB(프로세스 Control Block)
Kernel Stack
프로세스의 상태

Running
Ready
Blocked(wait, sleep)
New
Terminated
예시
프로세스의 상태도

new
ready
running
waiting(blocked)
terminated
PCB

정의
구성 요소
문맥 교환 (Context Switching)

정의
필요한 이유
동작 과정
Context Switch 구분하기

context switch인 것
context switch가 아닌것
context switch 여부와 overhead 관계
프로세스를 스케줄링 하기 위한 Queue
job queue
ready queue
device queue
실제 자료구조 형태

프로세스 스케줄링 Queue의 모습

Scheduler
Long-Term Scheduler (장기 스케줄러 or Job scheduler)
역할
특징
Medium-Term Scheduler (중기 스케줄러 or Swapper)
역할
Short-Term Scheduler (단기 스케줄러 or CPU scheduler)
역할
특징
프로세스의 상태
Suspended (Stopped)
특징
e.g. 외부적인 이유
Blocked와 Suspended의 차이
공통점
주요 차이점
Blocked
Suspended
프로세스 상태도

Active / Inactive
Active
Inactive
Swap Out / Swap In
Swap out
Swap in
Suspended(Blocked) / Suspended(Ready)
공통점
Suspended(Blocked)
Suspended(Ready)
Running (User mode / Kernel mode)

중요한 개념
User mode에서 Running 상태인 경우
Kernel mode에서 Running 상태인 경우
User mode에서 프로세스가 System Call을 호출한 경우
Interrupt가 들어오는 경우
Thread
설명
Thread가 동료 thread와 공유하는 부분 (=task)
Thread의 구성
Thread의 효율성
Thread의 장점
Responsiveness (빠른 응답성)
Resource Sharing(자원 공유)
Economy(경제적)
Utilization of Multi프로세스or Architectures(병렬성)
다중 thread 구성의 장점
Thread 구현 방법
Kernel Threads
User Threads
프로세스 관리
프로세스의 생성
생성 원리
프로세스는 자원을 필요로 함
자원의 공유
수행 (Execution)
주소 공간 (Address Space)
여러 프로그램들을 돌린다?
Unix(유닉스)의 예
프로세스 종료
fork() system call
Parent 프로세스와 Child 프로세스 구분
exec() system call
wait() system call
exit() system call
자발적 종료
비자발적 종료
프로세스간 협력
독립적 프로세스(Independent 프로세스)
협력 프로세스(Cooperating 프로세스)
프로세스 간 협력 메커니즘 (IPC: Inter프로세스 Communication)
(1) Message Passing (메시지 전달 방법)
Message System
Direct Communication
Indirect Communication
(2) Shared Memory (주소 공간을 공유하는 방법)
Last updated