中庸
article thumbnail
[Operating System] 프로세스의 제어 : 프로세스 간 통신
운영체제 2023. 3. 28. 00:03

예를 들어, A 학생이 짠 계산기 프로그램이 B 학생이 짠 Hello World 출력 프로그램에 관여할 일이 없는 것처럼 독립적으로 수행되는 프로세스는 다른 프로세스의 일에 관여할 필요가 없습니다. 하지만, 프로그램이 너무 거대해져서 이를 쪼개서 프로그래밍을 하게된 경우, 이 쪼개진 프로그램들끼리는 협력해야할 필요가 있습니다. 즉 한 프로세스가 다른 프로세스에 관여해야할 일이 생깁니다. 기본적으로 OS 는 한 프로세스가 자신의 메모리 접근 가능 영역을 벗어나 다른 프로세스의 메모리 영역으로 접근하려하면 이 프로세스를 제거해버립니다. 따라서 일반적인 방식으로는 프로세스 간 Communication 할 수 있는 방법이 없습니다. 어떻게 프로세스간 Communication 을 할 수 있을까? 앞서 말한 이유로..

article thumbnail
[Operating System] 프로세스의 제어 : 프로세스의 종료
운영체제 2023. 3. 27. 23:43

5-State Process Model 을 보면 Terminated 상태가 있었습니다. 프로세스의 종료는 언제 일어나는가? 1. 프로세스가 자신의 할 일을 정상적으로 모두 마치고나면, exit() 이라는 system call 을 호출하여 자신의 state 를 terminated 로 바꿉니다. 2. 프로세스가 자신의 할 일을 수행하다가 복구할 수 없는 오류를 발생시키면 terminated 됩니다. 3. 부모 프로세스가 자식 프로세스에게 kill signal 을 보내면 자식 프로세스는 terminated 됩니다. 좀비 프로세스 시스템 프로그래밍 시간에 좀비 프로세스에 대해 다루었습니다. 간단히 복기해보면 좀비 프로세스란 "종료되었지만 정리되지 않은 프로세스" 입니다. 정리되지 않으면, 엄연히 state 를 ..