-
3.1 Process ConceptTIL(today i learned)/운영체제 2023. 3. 20. 14:16
CPU의 활동을 을 부르는 방법
단일 처리시스템: job
시분할시스템: user programs or tasks
프로세스:실행중인 프로그램(
백번은 말한거같다)프로그램vs프로세스
프로그램:명령어 리스트를 내용으로가진 디스크에 저장된파일(수동적인 존재)
프로세스:실행할 명령어를 지정하는프로그램 카운터와 관련 자원의 집합을 가짐 (능동적인존재)
아래 그림을 보자
Text section :실행 코드
Data section :전역 변수
Heap section :프로그램중에 동적으로 할당되는 메모리
Stack section :함수를 호출할때 임시 저장소(재귀함수 가 깊어지면 안되는 이유)
activation record(활성화 레코드) :함수실행시 매개변수,지역변수,복귀주소를 포함하는 활성화 레코드가 스택에 푸시된다 메모리가 할당됨에따라 힙은 커지고 반환되면 힙은 작아진다
OS는 스택과 힙이 서로의 방향으로 커지며 겹치는것을 막아야한다.
Process State(프로세스 상태)[시험에 나온다고 하셨음]
new:프로세스가 생성중
ready:프로세스가 처리기에 할당되기를 기다림
running:명령어들이 실행되는중
waiting:프로세스가 어떤이벤트(입출력 완료 또는 신호 수신같은것들)가 일어나기를 기다리는것
terminated:프로세스의 실행이 종료 되었다.
해야할 일을 정하는 것 까지가 Scheduler의 일, 실제로 cpu를 Process에 할당하는 것이 Dispathcer의 일이라고 한다.
Process Control Block (PCB)
특정 프로세스와 연관된 여러 정보를 수록한것
다음과 같은 것들을 포함한다.
프로세스상태:new,ready,waiting,running등등
프로그램 카운터:이 프로세스가 다음에 실행할 명령어의 주소를 카리킴
CPU레지스터들:CPU레지스터는 컴퓨터 구조에따라 다양한 수와 유형을 가진다.프로그램카운터와 함께 이 상태정보는, 나중에 프로세스가 다시 스케줄될때 계속 올바르게 실행되도록 하기위해서 인터럽트 발생시 저장되어야한다
CPU스케줄링 정보:프로세스,우선순위,스케줄 큐에 대한 포인터와 다른 스케줄 매개변수를 포함한다.
메모리 관리정보:운영체제에 의해 사용되는 메모리 시스템에따라 기준 레지스터와 한계 레지스터의 값,운영체제가 사용하는 메모리 시스템 에따라 페이지 테이블 또는 세그먼트 테이블 등과 같은 정보를 포함한다.
회계 정보:CPU서용시간과 경과된 실시간,시간 제한,계정 번호,잡 또는 프로세스 번호등을 포함한다.
입출력상태정보:이프로세스에 할당된 입출력 장치들과 열린파일의 목록 등을 포함한다.
스레드
현대 OS는 다중 스레드를 지원한다.
프로세스가 한번에 하나 이상의 일을 수행할수 있도록 허락한다.
스레드를 지원하는 PCB는 각 스레드에 관한 정보를 포함하도록 확장된다.
Process Scheduling
프로세스 스케줄러는 코어에서 실행가능한 여려 프로세스중에서 하나의 프로세스를 고른다.
현재메모리에 있는 프로세스 수를 다중 프로그래밍 정도라고 한다.
IO바운드 프로세스:계산보다IO에 신경 쓴다.
CPU바운드 프로세스:IO보다 계산에 신경쓴다.
'TIL(today i learned) > 운영체제' 카테고리의 다른 글
Android Process Hierarchy (0) 2023.03.27 3.2.1 Scheduling Queues (0) 2023.03.22 용어 정리 (0) 2023.03.19 2.1 Operating System Services (0) 2023.03.19 1.8 Distributed Systems (0) 2023.03.13