티스토리 뷰

반응형

프로세스 생성 (Process Creation)

 부모 프로세스가 여러 개의 자식 프로세스를 복제 생성한다.

 

  • 자식은 부모의 주소 공간(binary address space)과 공간 내부에 있는 데이터(OS data)까지 복사한다.
  • 자식 프로세스는 복사한 공간에 새로운 프로그램을 올린다.
  • 예시) 유닉스
    • fork() : 시스템 콜이 새 프로세스를 생성한다.
      • 부모를 그대로 복사하고, 주소 공간을 할당한다.
    • fork() -> exec() : 시스템 콜이 새로운 프로그램을 메모리에 올린다.

 

 프로세스는 계층 구조(트리)로 형성되며, 필요한 자원은 운영체제로부터 받는다.

 

자원 공유 방법 2가지

  • 부모와 자식끼리 자원을 공유하는 모델
  • 자원을 공유하지 않는 모델 (공유하지 않는게 일반적)

 

프로세스 수행 방법 2가지

  • 부모와 자식이 공존하며 수행되는 모델
  • 자식이 종료될 때까지 부모가 기다리는 모델(wait)

 


 

프로세스 종료 (Process Termination)

exit: 프로세스가 마지막 명령을 수행한 후 운영체제에게 이를 알려준다.

 

  • 자식 프로세스가 부모 프로세스에게 결과 데이터를 보낸다. (wait)
  • 프로세스가 운영체제에게 자원들을 반납한다.

 

또는 부모 프로세스가 자식 프로세스를 종료시키는 경우도 있다. (abort = 강제 종료)

 

  • 자식이 할당 자원의 한계치를 넘어선 경우
  • 자식에게 할당된 태스크가 더 이상 필요하지 않은 경우
  • 부모 프로세스가 종료(exit)하는 경우
    • 이 경우에는 단계적인 종료를 수행한다

 

 


 

쓰레드 (Thread)

 쓰레드(Thread) 란 프로세스 내부에 존재하는 여러 개의 CPU 기본 수행 단위를 말한다.

 

[ 별도 구성 요소 ]

  • program counter
  • register set
  • stack space

[ Thread 끼리 공유하는 부분 (=task) ]

  • code section
  • data section
  • OS resources

 

이화여대 반효경 교수님 - 운영체제 강의

 

 

다중 스레드 (Multi Thread) 의 장점

  • 하나의 스레드가 blocked 상태인 동안에도 동일한 task 내의 다른 스레드가 실행되어 처리 속도가 빨라질 수 있다.
  • 동일한 일을 수행하는 스레드끼리 협력해 높은 처리율과 성능 향상을 얻을 수 있다.
  • 스레드를 사용하면 병렬성을 높일 수 있다.

 

ex) 웹페이지 화면을 불러올 때

  1. 1번 쓰레드는 웹페이지 url에 요청을 보내 화면 로딩 중 (blocked)
  2. 2번 쓰레드는 화면이 로딩되는 동안 이미 읽어온 텍스트를 화면에 보여줌

 

 

 

반응형