[정보처리기사] PCB
[정보처리기사] PCB
PCB
프로세스 제어 블록
운영체제가 중요한 정보를 저장해놓는곳
고유 PCB가 생성되고 완료되면 PCB는 제거됨
PCB(Process Control Block)는
운영체제가 프로세스를 관리하기 위해 사용하는 자료구조입니다. 각 프로세스마다 하나의 PCB가 할당되며, PCB는 해당 프로세스의 상태와 관련된 정보를 저장합니다.
PCB는 다음과 같은 정보를 포함할 수 있습니다:
프로세스 식별자(Process ID): 각 프로세스를 고유하게 식별하는 식별자입니다.
프로세스 상태(Process State): 프로세스의 현재 상태를 나타냅니다. (예: 생성, 준비, 실행, 대기, 종료 등)
프로그램 카운터(Program Counter): 다음에 실행할 명령어의 주소를 가리킵니다.
레지스터(Register): 프로세스의 레지스터 상태를 저장합니다. (예: 일반 레지스터, 스택 포인터, 베이스 레지스터 등)
스케줄링 정보(Scheduling Information): 프로세스의 우선순위, 실행 시간 등 스케줄링에 필요한 정보를 저장합니다.
메모리 관리 정보(Memory Management Information): 프로세스의 주소 공간 정보, 페이지 테이블 등 메모리 관리에 필요한 정보를 저장합니다.
입출력 상태(I/O State): 프로세스가 입출력 작업을 수행 중인 경우, 해당 작업의 상태를 저장합니다.
자원 할당 정보(Resource Allocation Information): 프로세스가 사용 중인 자원(예: 파일, 네트워크 연결 등)에 대한 정보를 저장합니다.
PCB 종류
포인터
주기억장치 괸리 정보
CPU 레지스터 정보
프로세스의 현재 상태
프로세스 고유 식별자
입출력 상태 정보
계정 정보
프로세스의 상태 전이
프로세스의 상태 전이
제출->접수중
디스크 전달중에
순서대로 하기 처리하는것은
(Spooling) 이라고 한다.
준비 -> 실행으로 전이되는과정 Dispatch
입 출력 발생 -> 대기
대기-> 준비 입출력 종료 (wake up) 깨움
제출(Submission): 프로세스가 생성되어 시스템에 제출됩니다.
접수중(Acceptance): 시스템이 프로세스를 접수하고 초기화 작업을 수행합니다.
준비(Ready): 초기화가 완료된 프로세스가 실행을 기다리는 상태로 전환됩니다. 이 상태에서는 CPU를 할당받기 위해 대기합니다.
Dispatch(디스패치): 준비 상태에서 선택된 프로세스가 CPU를 할당받아 실행 상태로 전환됩니다. 디스패치는 프로세스를 실행하기 위해 해당 프로세스의 상태 및 레지스터 정보를 로드하는 작업을 의미합니다.
입출력 발생(I/O Occurrence): 실행 중인 프로세스가 입출력 작업을 요청합니다. 이는 외부 장치(예: 디스크)와의 데이터 전송을 의미합니다.
대기(Waiting): 입출력 작업이 완료될 때까지 프로세스는 대기 상태로 전환됩니다. 이 상태에서는 해당 입출력 작업이 완료되기를 기다립니다.
준비(Ready): 대기 상태에서 해당 입출력 작업이 완료되면, 프로세스는 다시 준비 상태로 전환됩니다. 이는 입출력 작업이 완료되어 CPU를 할당받을 수 있는 상태를 의미합니다.
종료(Wake up): 대기 상태에서 해당 입출력 작업이 완료되면, 프로세스는 깨어나서 실행을 재개합니다. 이는 대기 상태에서 다시 준비 상태로 전환되는 과정을 의미합니다.
스레드
스레드(Thread)는 프로세스 내에서 실행되는 독립적인 실행 흐름입니다. 하나의 프로세스는 여러 개의 스레드를 가질 수 있으며, 각각의 스레드는 동시에 실행될 수 있습니다. 스레드는 프로세스 내의 자원을 공유하면서 동시에 작업을 수행하므로, 프로세스의 성능과 응답성을 향상시킬 수 있습니다.
경량성(Lightweight): 스레드는 프로세스 내에서 생성되고 관리되기 때문에, 프로세스보다 더 경량하고 빠르게 생성될 수 있습니다.
공유 자원(Shared Resources): 스레드는 같은 프로세스 내에서 실행되므로, 프로세스의 자원(예: 메모리, 파일 등)을 공유할 수 있습니다. 이를 통해 데이터 공유와 효율적인 통신이 가능해집니다.
동시성(Concurrency): 여러 개의 스레드가 동시에 실행될 수 있으므로, 병렬 처리와 동시성 작업을 구현할 수 있습니다.
효율성(Efficiency): 스레드는 프로세스의 자원을 공유하고, 스레드 간의 전환 비용이 낮기 때문에, 프로세스보다 효율적인 작업을 수행할 수 있습니다.
스케줄링
스케줄링
시스템의 여러 자원을 해당 프로세스에 할당 하는 작업을
의미한다.
CPU 이용률 증가,
응답 시간및 반한시간를 최소화 목적
프로세스에게 할당하는 작업을 뜻함
메모리 활용도(Optimal Memory Utilization): 시스템의 메모리를 효율적으로 활용하여 최대한 많은 프로세스를 실행할 수 있도록 합니다.
공정성(Fairness): 모든 프로세스가 공평하게 메모리에 로드되어 실행될 수 있도록 합니다.
처리량(Throughput): 시스템이 단위 시간당 처리할 수 있는 작업의 양을 최대화합니다.
응답성(Responsiveness): 사용자의 요청에 빠르게 응답하기 위해, 중요한 프로세스를 우선적으로 메모리에 로드하여 실행할 수 있도록 합니다.
장기스케줄링
시스템의 자원을 차지 할 수있도록 하는것
중기 스케줄링
어떤 프로세스의 CPU 할당 받을 것인지 결정하는 작업
단기 스케줄링
프로세스가 실행하는 시기를 말한다.
세부내용
중기 스케줄링(Mid-Term Scheduling)은 메모리에 로드된 프로세스들 중에서 실행 가능한 프로세스를 선택하는 스케줄링입니다. 중기 스케줄링은 메모리에 로드된 프로세스들을 일시적으로 중단하거나 메모리에서 제거하여 CPU 자원을 효율적으로 관리합니다. 이는 시스템의 응답성과 처리량을 균형있게 유지하기 위해 중요한 역할을 합니다.
단기 스케줄링(Short-Term Scheduling)은 CPU를 할당받은 프로세스들 중에서 어떤 프로세스를 다음에 실행할지 결정하는 스케줄링입니다. 단기 스케줄링은 CPU 스케줄링이라고도 불리며, 프로세스의 실행 시간을 조절하고 우선순위에 따라 프로세스를 선택하여 CPU를 할당합니다. 이는 시스템의 응답성과 처리량을 최적화하기 위해 중요한 역할을 합니다.
장기 스케줄링, 중기 스케줄링, 단기 스케줄링은 운영체제의 스케줄러에 의해 관리되며, 각각의 스케줄링 단계에서 프로세스의 상태와 우선순위를 고려하여 작업을 수행합니다.
비선점 스케줄링
비선점 스케줄링
이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아
사용할 수 없는 스케줄링 기법
선점 스케줄링
우선 순위가 높은 다른 프로세스가 CPU를 강제로
빼앗아 사용할수있는 스케줄링 기법
비선점 장점
프로세스 CPU 완료될때까지 CPU를 사용한다.
프로세스 응답시간의 예측이 용이함
비선점 종류 (강제실행을 못시키는것을 뜻함)
기한부
FCFS
HRN
우선순위
SJF
댓글