-
[Chapter-3] 프로세스 관리개발공부/OS 2024. 7. 21. 02:27
-이대 반효경 교수님 강의 기반으로 작성되었습니다-
프로세스의 생성
부모 ==> 자식
(트리구조)
프로세스는 자원이 필요
1. 운영체제로 부터 얻어오기
2. 부모에게 얻어오기 (종류 : 전체, 일부, 아예 공유 x)
==> 내용이 같은데 공유를 하지 않는다면 낭비다
++Copy on write ==> (cow)
write가 발생 했을때 그때 카피뜨겠다.
관련된 시스템 콜
- fork()
부모프로그램 복사
pc도 따라가기 때문에 무한 복제는 방지됩니다.
Q. 부모와 자식 분간은 어떻게?
A. pid로 (부모>0, 자식 = 0)
- exec()
새로운 프로그램 올리기
== execlp(실행파일, 명령어, 파라미터...,NULL)
경로는 환경변수 PATH에 정의된 경로에서 찾는다네요
ex) execlp(ls,ls,-al,NULL) 은 터미널에서 'ls -al' 명령 실행과 같다
- wait()
해당 프로세스를 block상태로 재워버리기
보통 자식 ps를 만들고 wait()
자식 ps가 끝난 후 ready상태로 변환- exit()
프로그램 종료콜
1. 자발적 종료
컴파일러가 프로그램 끝날때 자동으로 호출
명시적으로도 가능2. 비자발적 종료
키보드로 kill, break 입력
부모프로세스가 자식프로세스 강제종료
부모가 종료프로세스 간 협력
독립적 프로세스(independent)
= 하나의 프로세스는 다른 프로세스의 수행에 영향 x
협력 프로세스
= 다른 프로세스의 수행에 영향을 미칠 수 있음
프로세스 간 협력 메커니즘(ipc) = message passing : 커널을 통해 메시지 전달, shared memory
message passing?
direct communication : 통신하려는 프로세스 이름 명시
indirect communication : mailbox 혹은 포트를 통해 메시지 전달
shared memory?
커널이 한번 주면 프로세스 끼리 관리
'개발공부 > OS' 카테고리의 다른 글
[Chapter-5] Process Synchronization (0) 2024.08.04 [Chapter-4] cpu 스케줄링 (1) 2024.07.21 [Chapter-2] 프로세스 (0) 2024.07.21 [Chapter-1] 시스템 구조 (0) 2024.07.20 [Chapter-0] Intro (0) 2024.07.19