본문 바로가기
study/운영체제 OS

Process management - 운영체제 반효경 교수님

by stilinski 2022. 10. 24.
728x90

 

프로세스 생성(Process Creation)

  • 부모 프로세스가 자식 프로세스를 복제 생성
    • Copy-on-Write (COW) - write 가 발생했을 때 copy 원래 내용이 바뀔 때 copy 하고 그 전까진 공유
  • 프로세스의 트리(계층구조) 형성
    • 부모 1 자식 다. 자식의 자식.. 형태
  • 프로세스 자원은 운영 체제로부터 받고 부모와 공유하기도 한다.(보통 공유 안 함)
  • 자원의 공유 유형
    • 부모 자식 모든 자원 공유
    • 일부 공유
    • 공유 안 함
  • 수행(execution)
    • 부모와 자식 공존 수행 모델
    • 자식이 종료될 때까지 기다리는 모델

 

 

 

주소 공간(Address space)

  • 자식은 부모의 공간을 복사함 fork
  • 자식은 그 공간에 새로운 프로그램 올림 exec ()
  • fork와 exec은 운영체제만 할 수 있음. (시스템 콜)

 

 

프로세스 종료(termination)

  • 프로세스가 마지막 명령을 수행한 수 운영체제에게 이를 알려줌(exit 시스템 콜)
    • 자식이 부모에게 output data를 보냄(via wait). 자식이 부모보다 먼저 죽음
  • 부모 프로세스가 자식의 수행을 종료시킴(abort)
    • 자식이 할당 자원의 한계치를 넘어섬.
    • 자식에게 할당된 테스트가 더 이상 필요하지 않음.
    • 부모가 exit 하는 경우

 

 

 

 

 

fork() 시스템 콜

A process is created by the fork() system call.

  • fork를 하고 나면 자식 프로세스가 부모 프로세스의 context, 정확히는 pc를 복제하기 때문에 fork 다음 시점부터 자식 프로세스가 실행하게 됨
  • fork() 결과값
    • 부모 프로세스 - 양수(자식 프로세스의 PID) (원본 증명)
    • 자식 프로세스 - 0 (복사본)

 

 

의문

그럼 위에서 부모의 자식.. 자식의 자식 이런 식으로 프로세스가 트리구조로 형성된다고 했는데 자식이 새로운 프로세스 생성하려고 fork 하면 그럼.. 계속 0이 나오는 건가? 그러면 자식은 fork로 자식을 생성하지 못한다는 건가,,,?

 

 

 

 

 

exec() 시스템 콜

A process can execute a different program by the exec() system call

 

 

 

date라는 새로운 프로그램이 됨

해당 자식은 date 실행 끝나면 죽음

 

 

자식이 없이 exec을 할 수도 있지만 다시 돌아와서 다음 코드를 실행할 수 없음

 

 

 

 

 

wait() 시스템 콜

프로세스 A가 wait() 시스템 콜을 호출하면

  • 프로세스를 block 상태로 잠들게 하는 것
    • 보통 자식 프로세스를 생성하고 부모가 blocked 됨. 자식이 죽을 때까지 기다리는 과정

 

 

exit() 시스템 콜

  • 프로세스의 종료
    • 자발적 종료
      • 마지막 문장을 수행 후 exit() 시스템 콜 호출
      • 프로그램에 명시적으로 적어주지 않아도 main 함수가 리턴되는 위치에 컴파일러가 넣어줌.
    • 비 자발적 종료
      • 부모 프로세스가 자식 프로세스를 강제 종료시킴
        • 자식 프로세스가 한계를 넘는 자원 요청
        • 자식에게 시킬 일이 없음
      • 키보드로 kill, break 등을 친 경우
      • 부모가 종료하는 경우
        • 부모 프로세스가 종료하기 전에 자식들이 먼저 종료됨.

 

 

 

프로세스 간 협력

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

 

  • message passing

  • Shared Memory

 

 

 

출처 : http://www.kocw.or.kr/home/cview.do?cid=3646706b4347ef09 

 

운영체제

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각

www.kocw.net

 

728x90

댓글