프로세스의 연산
1. 프로세스의 구조
- 프로세스는 코드 영역, 데이터 영역, 스택 영역으로 구성됨
(1) 코드 영역
- 코드 영역은 프로그램의 본문이 기술된 곳으로 텍스트 영역(text area)라고도 함
(2) 데이터 영역
- 데이터 영역은 코드가 실행되면서 사용하는 변수나 파일 등의 각종 데이터를 모아놓은 곳임
(3) 스택 영역
- 스택 영역은 운영체제가 프로세스를 실행하기 위해 부수적으로 필요한 데이터를 모아놓은 곳임
2. 프로세스의 생성과 복사
- 프로세스는 프로그램을 실행할 때 새로 생성됨
-> 사용자가 프로그램을 실행하면 운영체제는 프로그램을 메모리로 가져와
코드 영역에 넣고 프로세스 제어 블록을 생성함
-> 그리고 메모리에 데이터 영역과 스택 영역을 확보한 후 프로세스를 실행함
- 프로세스를 새로 생성하는 방법뿐만 아니라 실행 중인 프로세스로부터 새로운 프로세스를 복사하는 방법도 있음
-> fork() 시스템 호출은 실행중인 프로세스로부터 새로운 프로세스를 복사하는 함수임
-> fork() 시스템 호출을 사용하면 실행중인 프로세스와 똑같은 프로세스가 하나 더 만들어짐
2.1 fork() 시스템 호출의 장점
(1) 프로세스의 생성 속도가 빠름
- 하드디스크로부터 프로그램을 새로 가져오지 않고 기존 메모리에서 복사하기 때문에
자식 프로세스의 생성 속도가 빠름
(2) 추가 작업 없이 자원을 상속할 수 있음
- 부모 프로세서가 사용하던 모든 자원을 추가 작업 없이 자식 프로세스에 상속할 수 있음
(3) 시스템 관리를 효율적으로 할 수 있음
- 부모 프로세스와 자식 프로세스가 자식 프로세스 구분자와 부모 프로세스 구분자로 연결되어 있기 때문에,
자식 프로세스를 종료하면 자식이 사용하던 자원을 부모 프로세스가 정리할 수 있음
참고
- 쉽게 배우는 운영체제