일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- JavaScript
- Spring
- Heap
- IT
- Galera Cluster
- design pattern
- Java
- Kafka
- spring webflux
- C
- 파이썬
- mongoDB
- redis
- Data Structure
- react
- Algorithm
- 컴퓨터구조
- 운영체제
- 백준
- Proxy
- 자바
- JPA
- c언어
- 네트워크
- 디자인 패턴
- 자료구조
- OS
- MySQL
- 알고리즘
- MSA
Archives
- Today
- Total
시냅스
TIL : OS processes 본문
프로세스 : 실행 중인 프로그램
- 작업의 단위
- 필요한 자원
- CPU time
- memory
- files
- I/O device
- 기본적으로 쓰레드 하나지만 여러개도 있음
프로세스의 메모리 레이아웃
- text section : 실행 코드
- data section : 전역 변수
- heap section : 프로그램 실행 중 동적으로 할당되는 메모리
- stack section : 함수를 호출할 때 임시 데이터 저장소(함수 매개변수, 복귀 주소, 지역 변수)
프로세스의 러닝 주기
- new : 프로세스 생성 중
- running : cpu에 명령어를 실행하는 상태
- waiting : cpu 점유를 기다리는 상태 (I/O 관련, 신호의 수신)
- ready : cpu 점유 직전 대기 상태
- teminated : 끝!
프로세스 관리법 : PCB(process control block)
- 프로세스가 가져야 하는 모든 정보
- 알아야 하는 정보
- process state (러닝 주기)
- program counter (메모리 주소)
- cpu registers (e.g. IR, DR)
- CPU scheduling
- memory management information
- accounting information : cpu 사용 시간, 경과된 실시간, 시간 제한, 계정 번호, 프로세스 번호 등
- I/O status information
멀티프로그래밍
- CPU 효율 상승!
- 스레드를 지원하는 시스템에서의 PCB는 각 스레드에 관한 정보를 포함하도록 확장함
- time sharing 방식
- scheduling queue
- ready queue
- wait queue
- OS는 dispatch 되기를 기다리는 준비 대기열을 유지 관리한다.
- OS는 또한 프로세스가 I/O 완료, 인터럽트 또는 자식 프로세스의 종료와 같은 이벤트를 기다리는 다른 대기열들을 유지 관리한다.
Context switch : context = pcb
- 인터럽트가 발생되면 실행 중인 context 저장해 뒀다가, 재개됐을 때 복구
- cpu 코어를 다른 프로세스에게 넘겨주는 것
- 현재 프로세스의 문맥(pcb) 저장
- 다른 프로세스의 pcb 복원
'운영체제' 카테고리의 다른 글
멀티 쓰레딩 Thread and Concurrency (0) | 2022.04.12 |
---|---|
TIL : OS Thread (0) | 2021.11.19 |
TIL : OS IPC 시스템의 사례 (0) | 2021.11.16 |
TIL : OS 프로세스 간 통신 (0) | 2021.11.14 |
TIL : OS Structure (0) | 2021.11.12 |
Comments