티스토리 뷰

Mode Switch

CPU가 user모드와 kernel모드 사이를 전환하는 것

이 전환은 현재 실행 중인 프로세스의 상태를 바꾸지 않고 이루어짐. (즉, 여전히 Running 상태!)

1. 시스템콜(운영체제 함수 호출)  ( 사용자가 OS 기능을 요청할 때 )

2.예외 ( 프로그램 실행 중 오류가 발생한 경우)

3.인터럽트 -(1)타이머 인터럽트 ,(2)I/O입출력 인터럽트 ( 외부 장치나 타이머가 CPU에게 '잠깐!' 하고 알리는 것 )

커널작업이 끝나면 다시 유저모드로 전환된다.

 

Execution Model of OS(운영체제 실행모델)

Mode switch: 현재 실행 중인 프로세스의 상태를 바꾸지 않고 전환이 이루어짐.

Process switch : 현재 실행중인 프로세스 자체가 바뀜. 

시스템콜, 인터럽트, 예외같은 커널 함수

 

Understanding OS Execution : Process Switch

Process Creation

프로세스를 만드는 이유 : Spawned by existing process( 기존 프로세스가 다른 작업을 병렬 처리하거나 분리하기 위해 새로운 프로세스 생성 )

Linux : fork(), exec() / fork()는 현재 프로세스를 복사(clone)하고, exec()는 새로운 프로그램을 실행함

window : CreateProcess() / CreateProcess()는 새로운 프로세스를 직접 생성하고 실행함 (fork+exec과 비슷한 역할)

프로세스를 만드는 두가지 방식

direct creation : 처음부터 빈 프로세스를 생성함

cloning : 기존 프로세스를 복사하고 필요한 부분만 수정함 → Linux의 fork() 방식이 대표적

 

Process Creation(direct)

 

  • 메모리 공간 할당
  • PCB 설정 및 초기화
  • 디스크에서 코드/데이터 로드
  • 상태 변경 및 Ready Queue 등록

Process Creation(by Cloning) 

운영체제가 기존 프로세스(부모)를 복사해서 새로운 프로세스(자식)를 생성

Fork: call once, return twice! : 부모는 자식의 PID를 반환받고,자식은 0을 반환받음,

속도 빠름 → 특히 Copy-on-Write(COW) 기법과 함께 사용되면 속도가 빨라진다.

 

Copy-on-Write(COW) : 기존 프로세스의 메모리를 바로 복사하지 않고, 필요할 때 복사하는 기법

1. After fork (포크 직후) : 복사가 일어나지 않기 때문에 아주 빠름!

2. After write operations (자식이 Page A에 쓰기 시도) : 해당 페이지를 복사한 후 쓰기 허용

 

Process Creation (by fork-exec)

Fork : call once, never return: 자식만 exec 수행, 성공 시 그 이후 코드는 실행 안 됨

 

 

Zombie and Orphan Process

자식 프로세스가 exit()로 종료되었지만, 운영체제가 PCB(프로세스 제어 블록)를 즉시 제거하지 않은 상태

즉, 프로세스는 죽었지만 시스템에는 "유령처럼 남아 있음"

왜? 부모가 wait()로 종료 코드 받을 때까지 보류

 

 

 

Process Termination

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함