Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준
- 세그먼트트리
- 코딩테스트
- GIT
- 문자열
- dfs
- 문자열다루기
- Android
- 코딩
- activity
- 이분탐색
- BOJ
- BFS
- 동적계획법
- component
- 알고리즘
- 프로그래머스
- 카카오블라인드
- 다이나믹프로그래밍
- 안드로이드
- 코틀린
- 운영체제
- 분할정복
- 스택
- 트리
- 완전탐색
- 자바
- 배열
- 그래프
- 생명주기
Archives
- Today
- Total
HS_development_log
프로세스 본문
반응형
프로세스
프로세스(Process)
- 실행중인 프로그램
- 운영체제가 디스크에 있던 프로그램 파일을 찾아서 메모리에 적재해서 만든 것
- 운영체제로 부터 시스템 자원을 할당받는다.
프로세스의 구성 요소
- 코드(code)
- 데이터(data) : 전역 변수들을 저장
- 스택(stack) : 지역 변수 및 함수의 매개변수를 저장
- 힙(heap) : 동적 메모리 할당 영역
- CPU 레지스터
- PC(program counter) 레지스터 : 프로그램의 다음에 실행할 명령어의 주소 값을 가짐
- CS 레지스터 : 코드 세그먼트의 시작 주소 포함
- DS 레지스터 : 데이터 세그먼트의 시작 주소 포함. 데이터의 위치를 알아내는데 사용
- SS 레지스터 : 스택 세그먼트의 시작 주소 포함
프로세스 제어 블록(PCB)
- 프로그램을 실행하여 프로세스가 만들어질 때, 운영체제가 프로세스를 관리하기 위해 만드는 데이터 구조
- 프로세스가 생성될 때마다 PCB를 생성함
- 프로세스가 종료되면 PCB를 제거함
프로세스 제어 블록 구성 요소
- 프로세스 번호(PID)
- 프로세스 상태(state)
- CPU 레지스터
- CPU 스케쥴 정보: 우선순위, 스케쥴 큐의 포인터 등등..
- 기억장치 관리 정보 : 기준 레지스터, 제한 레지스터, 기억장치 시스템의 페이지 테이블, 세그먼트 테이블의 정보
- 계정(accounting) 정보 : CPU가 사용된 양, 계정 번호, 프로세스 번호
- 입출력 상태 정보 : 입출력 요구들, 입출력 장치, 개방된 파일의 목록
프로세스 상태(Process State)
-
생성(new) : 프로세스가 생성되는 중
-
실행(running) : 프로세스의 명령어들이 실행되고 있다
-
대기(wating) : 프로세스가 어떤 사건(ex : I/O종료)이 일어나기를 기다림
-
준비(ready) : 프로세스가 CPU를 할당받기를 기다린다.
-
종료(terminated) : 프로세스의 실행이 종료된다
어느 한순간에 한 CPU에 오직 하나의 프로세스만이 실행된다
문맥 교환(Context Switch)
- CPU가 다른 프로세스로 넘어갈 때, 지금까지의 프로세스의 상태(CPU 레지스터의 내용)를 PCB에 저장하고, 새 프로세스의 PCB에 저장되어 있는 상태(CPU 레지스터의 내용)을 다시 CPU레지스터에 적재 하는 것.
- 문맥교환은 시스템의 오버헤드이기 때문에 최대한 문맥 교환 시간을 줄이는 것이 좋다.
- 문맥교환에 걸리는 시간은 하드웨어의 지원에 따라 달라진다.
- 기억장치의 속도
- 레지스터의 수
- 특수 명령어의 지원 여부
프로세스 스케줄러
- 장기 스케줄러(Long-term scheduler)
- 디스크에 저장되어 있는 작업들 중에서 선택해서 실행하기 위한 기억장치로 적재
- 선택된 작업은 준비 큐에 들어감
- 중기 스케줄러(Medium-term scheduler)
- 어떤 프로세스가 스왑되어 나가고, 스왑되어 들어올 것인지를 결정
- 단기 스케줄러(Short-term scheduler)
- 실행 준비가 되어있는 프로세스들 중에서 선택하여 CPU 할당
- 보통 수십 밀리 초마다 한번씩 실행되어 새로운 프로세스 선택
프로세스 통신
- 직접 통신 : 상대 프로세스의 id(번호)를 직접 명시
- 간접 통신 : 통신하는 프로세스들간 공유하는 메일박스를 통하여 통신
- 메일박스의 생성, 삭제 및 메일박스를 통한 송수신은 운영체제가 담당함
반응형
'CS > 운영체제' 카테고리의 다른 글
CPU 스케줄링 (0) | 2020.09.28 |
---|---|
멀티 프로세스 vs 멀티 쓰레드 (0) | 2020.09.28 |
쓰레드 (0) | 2020.09.28 |
프로세서 / 메모리 / 인터럽트 (0) | 2020.04.24 |
운영체제 정의 / 기능 / 사례 (0) | 2020.04.04 |