[운영체제] 4. 프로세스 관리

서요이·2022년 10월 11일
0

운영체제

목록 보기
4/12
post-thumbnail

4. 프로세스 관리

프로세스 생성 (Process Creation)

부모 프로세스가 자식 프로세스 복제 생성
프로세스가 운영체제에게 시스템 콜 - fork

  • 수행
    부모와 자식이 공존하며 수행하는 모델
    자식이 종료될 때까지 기다리는 모델
  • 주소 공간
    자식은 부모의 공간 복사하여 그 공간에 새로운 프로그램 올림 (덮어씌움)
  • fork() 시스템 콜 - 새로운 프로세스 생성
  • exec() 시스템 콜 - 새로운 프로그램 메모리에 올림

프로세스 종료 (Process Termination)

  • exit() 시스템 콜 - 프로세스 종료
    자식이 부모에게 output data 보내면 프로세스의 자원 운영체제에게 반납됨
  • abort() 시스템 콜 - 부모 프로세스가 자식의 수행 종료시킴
    자식이 할당 자원의 한계치 넘어섬
    자식에게 할당된 태스크 종료
    부모가 종료하는 경우(단계적인 종료)

시스템 콜 함수

  • fork() 같은 프로세스 하나 더 생성 - 동일한 실행파일
    코드에서 fork() 함수 다음부터 실행 부모 프로세스: pid > 0
    자식 프로세스: pid = 0
  • exec() 새로운 프로그램으로 덮어 씌움(되돌아올 수 X)
    exec() 함수 다음 부분의 프로그램은 실행되지 않음
    보통 자식에게 새로운 프로그램을 실행시킬 때 사용
  • wait() 자식이 종료될 때까지 부모 프로세스 sleep 시킴
  • exit()
    • 자발적 종료
    • 비자발적 종료 - 부모 프로세스 또는 사람이 자식 프로세스를 강제 종료시킴

프로세스 간 협력

프로세스 간 협력 메커니즘 (IPC: Interprocess Communication)

  • Message passing
    운영체제(커널)을 통해 전달받음
    - Direct Communication - 통신하려는 프로세스 이름 명시
    - Indirect Communication - mailbox를 통해 간접 전달
  • Shared Memory
    메모리를 공유하도록 시스템 콜
  • thread
    동일한 프로세스이므로 주소 공간을 공유하여 협력이 가능

0개의 댓글