운영체제 프로세스 관리

2024. 3. 20. 11:58카테고리 없음

운영체제의 기능

1.프로세스 관리

2.메모리 관리

3.파일시스템 관리

4.장치 관리

5. 네트워크 관리

6.IPC

중에서 프로세스 관리를 알아보자

저장장치에 기록된 실행 가능한(main함수가 있는 없다면 라이브러리 프로그램x) 정적 소프트웨어를 프로그램이라고 한다


명령을 처리하는 하드웨어 CPU==프로세서

메모리에 올라가서 cpu에 의해 처리되는 소프트웨어를 프로세스라고 한다

*이때 프로세스 제어 블록 PCB할당  

PCB(운영체제가 프로세스를 관리하기 위한 자료구조)

프로그램이 프로세스로 변환== 프로세스 생성, 운영체제로부터 PCB(운영체제가 프로세스를 관리하기 위한 자료구조)를 얻음 


   프로세스 종료= 프로세스 제어 블록을 폐기
 
프로세스를 만들때마다 PCB를 생성하려면 시간이 오래 걸림, 따라서 템플릿을 복사해서 사용==복사될 pcb:부모 프로세스   복사된 프로세스:자식 프로세스 

누가 부모고 누가 자식인지에 대한 정보가 저장되어있다 그 정보를 부모 식별자:PPID 자식 식별자 CPID라고 함

PCB는 커널 영역에 존재함 (운영체제가 직접 관리)
PCB의(프로세스 고유의 자료구조의 구성) 
   PID:프로세스를 구분하는 구분자
   메모리 관련 정보: 프로세스의 메모리 위치

   포인터: 다음 프로세서 위치에 대한 포인터, 다음 프로세스 위치 메모리 주소를 연결리스트로 관리

   프로세스 상태: 생성, 준비, 실행, 대기, 보류, 상태 등 저장
   프로그램 가운터: 다음 실행할 명령어 위치값

   프로세스 실행 우선순위, PPID:부모 프로세스 식별자, CPID:자식 프로세스 식별자

프로세스 상태

   생성상태: 메모리에 적재되어 프로그램->프로세스로 변환될 준비가 된 상태 (PCB생성)
    준비상태: CPU점유를 위해 준비중   //디스패치: 준비상태에서 실행으로 변화

    실행상태: CPU를 사용하는중(점유중) //타임아웃(클록별로 다른 프로세스 처리할때 클록이 넘어가서 A프로세스를 처리하고 B프로세스를 처리하는 것), 인터럽트(실행중 예기치않은 상태 발생시 다른 일 처리후 복귀)
    완료상태: 프로세스 제어블록(PCB)를 사라진 생태 ==종료상태
+대기상태 (입출력등이 요청될떄 수신을 대기)
+보류상태로 진입하는 경우는 메모리 공간 부족, 오류로 인한 실행 미룸, 바이러스 위험이 있는 프로세스, 가끔 실행하는 프로세스 , 입출력이 지연되는 경우 보류상태로 전환된다

프로세스의 좀비상태: PCB를 복사하여 프로세스를 만듬(부모자식의 트리관계)

자식 프로세스가 종료되면 부모에게 알림(성공 OR 실패) 

자식이 부모에게 종료한걸 리턴 실패하면 부모는 자식이 리턴하는걸 기다리며 종료되지 않음