일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #리버싱
- java8
- GraphQL
- #보안뉴스
- #심플즈
- #크랙미 5번
- #심플즈 크랙미
- Spring
- #크랙미
- #abex크랙미
- #파밍
- #크랙미 9번
- #고클린
- java
- #크랙미3번
- 리버싱
- springframework
- #abex
- #보안이슈
- leetcode
- #크랙미 10번
- #abex크랙미4번
- #크랙미2번
- Easy
- #크랙미4번
- Today
- Total
Halo World
프로세스의 개념과 PCB 본문
| 프로세스란?
운영체제에서 수행중인 프로그램
| 프로세스 상태
생성(New) : 프로세스가 생성 중임
실행(Running) : 명령어들이 실행되고 있음
대기(Waiting) : 프로세스가 어떤 사건이 일어나기를 기다리는 상태
준비(Ready) : 프로세스가 처리기에 할당되기를 기다림
완료(Terminated) : 프로세스의 실행이 종료
| 프로세스 제어 블록(PCB : Process Control Block)
특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영체제 커널의 자료구조
특정 프로세스에 대한 정보를 담고 있음
> PCB가 담고 있는 정보
- 프로세스 식별자(Process ID)
- 프로세스 상태 : 생성, 준비, 실행, 대기, 완료
- 프로그램 카운터 : 프로세스가 다음에 실행할 명령어의 주소를 가리킴
- CPU 레지스터 및 일반 레지스터
- CPU 스케줄링 정보 : 우선순위, 최종 실행시각, CPU 점유시간 등
- 메모리 관리 정보 : 해당 프로세스의 주소 공간 등
- 프로세스 계정 정보 : 페이지 테이블, 스케줄링 큐 포인터, 소유자, 부모 등
- 입/출력 상태 정보 : 프로세스에 할당된 입출력장치 목록, 열린 파일 목록 등
> PCB의 위치
: 프로세스의 중요한 정보를 포함하고 있기 때문에, 일반 사용자가 접근하지 못하도록 보호된 메모리 영역 안에 남는다.
일부 운영체제에서 PCB는 커널 스택의 처음에 위치한다. (편리하면서 보호받는 위치임)
| 프로세스간 CPU 스위치
[참고]
https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EC%A0%9C%EC%96%B4_%EB%B8%94%EB%A1%9D
http://onewaykim.tistory.com/23
'개발 지식 > OS' 카테고리의 다른 글
프로세스 간 동기화 (공유 자원에 대한 접근 문제) (0) | 2017.07.11 |
---|---|
CPU 스케줄링 (0) | 2017.07.10 |
[OS 문제] 2일차 (0) | 2017.07.06 |
커널과 쉘 (0) | 2017.07.06 |
리눅스 커널모드와 유저모드 (0) | 2017.07.04 |