목록CS 개념 학습 정리/프로세스 관리 (3)
♠Developer blog♠
1. 프로세스의 구조 코드 영역 프로그래머가 작성한 프로그램은 코드 영역에 탑재되며 탑재된 코드는 읽기 전용으로 처리된다. 자기 자신을 수정하는 프로그램은 존재하지 않기 때문이다.데이터 영역 변수나 파일 등의 각종 데이터를 모아놓은 곳이다. 본문에 사용되는 데이터가 저장되어 있다. 상수로 선언된 변수는 읽기 전용이지만, 대부분의 변수는 읽기와 쓰기가 가능하다.스택 영역 운영체제가 프로그램을 실행하기 위해 부수적으로 필요한 데이터를 모아놓은 곳이다. 프로세스 내에서 함수를 호추랗면 함수를 수행하고 원래 프로그램으로 되돌아올 위치를 이영역에 저장한다. 스택 영역은 운영체제가 사용자의 프로세스를 작동하기 위해 유지하는 영역이므로 사용자에게 보이지 않는다. 2. 프로세스의 생성과 복사 fork() fork()를..
포인터 프로세스 상태 프로세스 구분자 프로그램 카운터 프로세스 우선순위 각종 레지스터 정보 메모리 관리 정보 할당된 자원 정보 계정 정보 PPID와 CPID 포인터 : 준비 상태나 대기 상태는 큐로 운영되는데, 프로세스 제어 블록을 연결하여 준비 상태나 대기 상태의 큐를 구현할 때 포인터를 사용한다. 프로세스 상태 : 생성, 준비, 실행, 대기, 보류 준비, 보류 대기가 있다. 프로세스 구분자 : 프로세를 구별하는 역할은 한다. 프로그램 카운터 : 다음에 실행될 명령어의 위치를 가리키는 프로그램 카운터의 값을 저장한다. 프로세스 우선순위 : 다양한 우선순위의 프로세스가 대기 상태로 들어오기 때문에 대기 상태의 큐도 우선순위별로 따로 운영된다. 각종 레지스터 정보 : 누산기, 색인 레지스터, 스택 포인터와..
생성 상태 : 프로세스가 메모리에 올라와 실행 준비를 완료한 상태이다. 프로세스를 관리하는 데 필요한 제어 블록이 생성된다. 준비 상태 : 생성된 프로세스가 CPU를 얻을 때까지 기다리는 상태이다. 실행 상태 : 실행 상태에 들어간 프로세스는 일정 시간 동안 CPU를 사용할 권리를 갖는다. 만약 일정 시간동안 작업이 끝나지 않았다면, 프로세스는 준비 상태로 돌아와 다음 차례를 기다린다. 완료 상태 : 프로세스 제어 블록이 사라진 상태를 의미한다. 준비 상태에 있는 여러 프로세스 중 다음에 실행할 프로세스를 선정하는 일은 CPU 스케줄러가 담당한다. CPU 스케줄러는 준비 상태의 맨 앞에서 기다리고 있는 프로세스 제어블록을 CPU에 전달하여 작업이 이루어지게 한다. 준비 상태의 프로세스 중 하나를 골라 실..