티스토리 뷰
프로세스
실행중인 프로그램
메모리에 적재되어 실행되고 있는 프로그램
4가지 주소 공간가짐
코드영역(프로세서가 실행하는 명령어 저장)
데이터영역(전역 변수 저장)
힙영역(동적 메모리 할당)
스택영역(지역 변수, 함수 매개변수, 반환주소 저장)
프로세스 생명주기
running(실행) 상태
프로세서에서 명령어 실행 중
ready(준비) 상태
프로세서의 할당 대기 중
waiting(blocked) (대기) 상태
특정 event 대기
new(생성) 상태
프로세스 생성 중
terminated(종료) 상태
실행 종료
디스패치
준비 상태 -> 실행 상태
quantum 양자
프로세스 제어 블록(Process Control Block, PCB)
OS가 프로세스 관리를 위해 데이터를 보관하는 자료구조
pid
state
pc(program counter)
다음번에 실행할 명령어 주소
cpu 레지스터
cpu 스케줄링 정보
부모 프로세스 포인터(ppid)
자식 프로세스 포인터
메모리 영역 정보(코드,스택,데이터,힙)
I/O 상태 정보
사용통계(account) 정보
-과금
프로세스 관리, 메모리 관리, 파일 관리
이중연결리스트 next, prev
가지고 있는 이유
준비 상태 실행가능
줄을서있어야함
준비상태의 프로세스를
별도의 공간에 넣어두는것이아니라
프로세스 제어 블록에 순서대로 넣어둔 것
포인터 하나만으로 가리키고 있다
프로세스 테이블
프로세스 제어블록(PCB_의 포인터를 ㅗ간리하는 테이블
PID, PCB
프로세스 스케줄링
프로세서 스케줄러(processor(cpu) scheduler)
ready상태만 실행할 수 있다(우선순위 고려)
대기상태를 프로세서 스케줄러에게 준다고 해도 실행되지 않는다
운영체제는 사용자 입장에서 보면 오버헤드다(운영체제도 소프트웨어라서 자원을잡아먹기때문)
너무 프로그램이 많이들어오면 기다렸다가 작업을 따로 집어넣어주는 역할을 하는게
job queue
장기스케줄러(job scheduler)
job queue
어떤녀석을 시스템에 넣어줄건지
단기 스케줄러(cpu scheduler)
준비상태를 바로 넣어줌
q. 프로세스 스케줄링은
준비대기열을 순서대로 슨다고하는데
cpu스케줄러는 순서대로서있는걸 차례대로 하는것인가
아니면 우선순위를 할당해서 골라쓰는건가?
a: 줄은 서있지만
프로세스 선점(preemption)
'개념 > 운영체제' 카테고리의 다른 글
쓰레드 (0) | 2022.03.22 |
---|---|
프로세스2 (0) | 2022.03.18 |
운영체제의 발전과정(2) (0) | 2022.03.11 |
하드웨어 및 소프트웨어 (0) | 2022.03.11 |
운영체제의 역할과 발전과정 (0) | 2022.03.07 |
- Total
- Today
- Yesterday
- SQL
- javascript
- infcon 2024
- kloa
- 리눅스
- CSS
- 우분투
- authorization code
- git
- DDL
- 로스트아크 캐릭터
- oauth
- SpringBoot
- bfs
- authorization_code
- 2024인프콘
- 데이터3법
- git 예전 커밋 수정
- 클로아
- DML
- oauth2.0
- 데이터 3법
- 프로그래머스
- git commit 수정
- 오픈소스
- 데이터베이스
- 인프콘2024
- html
- html #웹 #웹사이트 #플레이리스트
- Android Studio
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |