CS - 운영체제(3) 프로세스 관리

김영현·2023년 7월 5일
0

CS

목록 보기
5/32

프로세스 생성

  • 부모 프로세스가 자식을 생성
  • 자원공유(안 하는 모델이 일반적임)
  • 자료구조 중 트리구조를 따름.
  • PCB나 주소공간을 그대로 복사함
  • fork로 복제 후 exec로 다른 프로그램으로 덮어씌움(아닐수도)
  • Copy-On-Write 기법으로 작동될때가 있음
    => 쓰기 가 발생하기 전까지 PC만 복제해서 같은 주소를 가리키고 있다가, 쓰기가 발생하면 복제한다.



프로세스 종료

  • 임무가 끝나거나, 자식이 너무 자원을 막쓰면 종료!
  • 부모가 종료명령을 받으면 자식이 다 꺼지고 나서 종료됨

프로세스 관련 시스템 콜 4가지

fork()

  • fork()는 자식 프로세스를 생성함.
  • 프로세스끼리 고유한 숫자를 메겨 구분한다. 이를 pid라 칭함.
  • fork함수로 자식을 생성하면 자식 pid가 리턴, 자식은 0을 리턴함

exec()

  • exec()는 다른 프로그램으로 덮어씌움
  • exec()아래에 써있는 코드는 실행x

wait()

  • wait()는 자식이 끝나길 기다리는 시스템 콜.
    예를들어 리눅스 쉘에서 프로그램을 실행시킨다.
    그러면 쉘은 blocked상태가 됨
    프로그램이 종료되면 다시 ready상태

exit()

프로세스 끝내기! kill이나 Ctrl^C도 마찬가지다.


프로세스 간 협력

세 종류가 있다. 쓰레드는 프로세스 간 협력이라기 보단, 프로세스 내부에서 협력을 하는것.

profile
모르는 것을 모른다고 하기

0개의 댓글