
프로세스가 어떻게 만들어지나?
부모 프로세스가 자식 프로세스를 생성한다. - 복제 생성을 한다
트리 구조 로 형성이 된다.

부모 프로세스의 주소공간을 자식이 그대로 복사를 한다.
복사를 하고 , 새로운 프로그램을 덮어 씌운다.
fork() 시스템 콜로 새로운 프로세스를 복사하고
exec() 시스템 콜로 새로운 프로그램을 덮어 씌운다.

자발적으로 종료시킬때 exit
강제적으로 종료될때 abort



block 상태로 보내는 것
부모 프로세스에 wait 를 하면 부모 프로세스는 CPU 를 얻지 못하고 sleep 된다.
언제까지냐 하면 자식 프로세스가 종료될때까지

자발적 종료일때 보통 실행된다.

프로세스는 기본적으로 독립적인 공간이다.
프로세스끼리 직접적으로 메시지를 전달하는 방법은 없다 원칙적으로
메시지를 전달하고 싶을땐 커널을 통해서 메시지를 전달 하곤 한다.
스레드는 프로세스 간 협력은 아니지만 , 프로세스 내부의 스레드 간의 협력은 가능한것

프로세스 사이에 공유 변수를 사용하지 않고
중간에 커널을 통해서 메시지를 전달한다.

메시지를 전달할땐 항상 커널을 통해서 커널이 다른 프로세스에 넘겨준다
원칙적으론 프로세스는 자기 주소 공간을 가지고 있지만
일부 주소 공간을 갖고 두 프로세스가 공유하는 방법이
쉐어 메모리 방식이다.
이것도 그냥 쓸 수 있는게 아니라 커널에 시스템 콜을 보내서
쉐어 메모리를 쓴다고 맵핑을 해놓고 써야한다.
'프로그래밍 > 운영체제' 카테고리의 다른 글
[운영체제] CPU Scheduling 2 (0) | 2020.06.15 |
---|---|
[운영체제] CPU Scheduling (0) | 2020.06.15 |
[운영체제] Process2 - Thread (0) | 2020.06.14 |
[운영체제] Process (0) | 2020.06.13 |
[운영체제] System Structure & Program Execution 2 (0) | 2020.06.13 |