일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- exec
- 백준
- 데드락
- 김건우
- ascii_easy
- 백트래킹
- BOJ
- 알고리즘
- 스케줄링
- Brute Force
- 동기화문제
- 삼성기출
- fork
- 컴공복전
- 완전탐색
- 삼성리서치
- Memory Management
- samsung research
- segmentation
- 시뮬레이션
- Deadlock
- BFS
- 구현
- higunnew
- pwnable.kr
- 가상메모리
- 운영체제
- dfs
- paging
- 프로세스
- Today
- Total
목록fork (2)
gunnew의 잡설
프로세스 복제, 프로세스 생성에 대해 다시 한번 상기해보자. 프로세스 복제는 프로세스의 문맥(Context)을 모두 복사하는 것이다. 부모 프로세스의 주소 공간 code, data, stack 영역을 그대로 복사하며 프로세스의 CPU 문맥 (Program Counter)를 복사하는 작업을 하는 것이다. 이렇게 일단 프로세스가 만들어지면, 부모 프로세스와 자식 프로세스는 서로 독립적인 프로세스가 되기 때문에 자원을 공유하려고 하지 않는 것이 원칙이다. 그러나 지난 번에도 언급했듯이 프로세스 문맥을 복사하는 것은 큰 overhead가 발생한다. 게다가 프로세스를 말 그대로 '복사'하는 것인데 똑같은 내용이 메모리에 또 올라간다면 너무나 큰 낭비가 아니겠는가? 따라서 리눅스와 같은 운영체제들은 부모 프로세스와..
프로세스는 어떻게 관리될까? 프로세스는 어떻게 만들어지고 어떻게 종료될까? 이번 강에서는 프로세스의 관리에 대해 설명한다. 프로세스 생성(Process Creation) 사람은 어떻게 태어나는가? 부모에 의해서 태어난다. 프로세스도 마찬가지이다. 부모 프로세스(Parent process)가 자식 프로세스(Children process)를 생성한다. 하지만 사람과는 다르게 프로세스가 자식을 생성할 때는 복제 생성을 하며 트리 계층 구조로 프로세스의 hierarchy가 만들어진다. 프로세스는 자원을 필요로 한다. 이 자원은 운영체제로부터 할당 받거나 부모 프로세스와 공유하게 된다. 하지만 부모로부터 자식이 생성되었다고 하더라도 각 프로세스는 서로 다른 프로세스이기 때문에 공유하지 않는 것이 일반적이며, 서로..