OS

프로세스의 연산

Bryan Lee 2022. 4. 30. 17:04

 

1. 프로세스의 구조

 

- 프로세스는 코드 영역, 데이터 영역, 스택 영역으로 구성됨  

 

(1) 코드 영역

- 코드 영역은 프로그램의 본문이 기술된 곳으로 텍스트 영역(text area)라고도 함 

 

(2) 데이터 영역

- 데이터 영역은 코드가 실행되면서 사용하는 변수나 파일 등의 각종 데이터를 모아놓은 곳임

 

(3) 스택 영역

- 스택 영역은 운영체제가 프로세스를 실행하기 위해 부수적으로 필요한 데이터를 모아놓은 곳임

 

 

2. 프로세스의 생성과 복사

 

- 프로세스는 프로그램을 실행할 때 새로 생성됨

-> 사용자가 프로그램을 실행하면 운영체제는 프로그램을 메모리로 가져와  

    코드 영역에 넣고 프로세스 제어 블록을 생성함

-> 그리고 메모리에 데이터 영역과 스택 영역을 확보한 후 프로세스를 실행함

 

- 프로세스를 새로 생성하는 방법뿐만 아니라 실행 중인 프로세스로부터 새로운 프로세스를 복사하는 방법도 있음

-> fork() 시스템 호출은 실행중인 프로세스로부터 새로운 프로세스를 복사하는 함수임

-> fork() 시스템 호출을 사용하면 실행중인 프로세스와 똑같은 프로세스가 하나 더 만들어짐

 

 

2.1  fork() 시스템 호출의 장점

 

(1) 프로세스의 생성 속도가 빠름

- 하드디스크로부터 프로그램을 새로 가져오지 않고 기존 메모리에서 복사하기 때문에

   자식 프로세스의 생성 속도가 빠름

 

(2) 추가 작업 없이 자원을 상속할 수 있음

- 부모 프로세서가 사용하던 모든 자원을 추가 작업 없이 자식 프로세스에 상속할 수 있음

 

(3) 시스템 관리를 효율적으로 할 수 있음

- 부모 프로세스와 자식 프로세스가 자식 프로세스 구분자와 부모 프로세스 구분자로 연결되어 있기 때문에,

  자식 프로세스를 종료하면 자식이 사용하던 자원을 부모 프로세스가 정리할 수 있음 

 

참고

- 쉽게 배우는 운영체제