CS지식/운영체제

TIL 정리_71

ran4 2022. 4. 28. 12:08

커널 주소 공간

커널의 주소 공간 또한 code, data, stack으로 구성되어 있다

 

커널의 코드 / code

시스템 콜, 인터럽트 처리 코드

자원 관리를 위한 코드

편리한 서비스 제공을 위한 코드가 존재한다

 

커널의 데이터 / data

하드웨어를 관리한다

하드웨어마다 자료구조가 존재한다

프로세스를 관리하기 위한 자료구조인 PCB가 존재한다

 

커널의 스택 / stack

사용자 프로세스마다 커널 스택이 따로 존재한다

 

사용자 프로그램이 사용하는 함수

사용자 정의 함수

자신의 프로그램에서 정의한 함수를 말한다 

 

라이브러리 함수

자신의 프로그램에서 정의하지 않고 갖다 쓴 함수

자신의 프로그램의 실행 파일에 포함되어있다

-> 사용자 정의 함수와 라이브러리 함수는 프로세스의 주소 공간에서 사용된다

 

커널 함수

운영체제 프로그램의 함수

커널 함수의 호출은 시스템 콜과 동일하다

-> 커널의 주소 공간에서 사용된다

 

 

프로세스의 문맥(context)

 

CPU 수행 상태를 나타내는 하드웨어 문맥으로 
코드의 어느 부분까지 실행되었는지
현재 변수의 값과 실행되면서 레지스터에 할당한 값이 어떻게 되는지
어떤 요소로 실행되었는지 등을 확인하는 모든 요소를 프로세스의 문맥이라고 한다

Program Counter
각종 register //어떤값을 가지고 있는가 

프로세스 주소 공간 
code, data, stack //어떤 내용이 들어가 있는가 

프로세스 관련 커널 자료구조 
PCB(Process Contrl Block)
Kernal stack
커널 : 여러 프로세스들이 공유하는 부분이다
-> 커널이 누구의 부탁을 받고 실행하는지는 매번 다르다 

운영체제의 역할 중 하나는 프로세스의 관리이다
운영체제는 프로세스마다 하나의 PCB와 커널 스택을 별도로 두고 있다
->프로세스가 어떤 상태에 있는지를 정확하게 규명할 수 있다

프로세스 혼자 실행이 된다면 이러한 정보를 알 필요는 없지만 

현대의 컴퓨터는 시분할(time sharing)이 되기 때문에 프로세스의 문맥을 알아야 한다 

프로세스의 상태(Process state)
프로세스는 상태가 변경되며 수행된다
Running
-CPU를 잡고 instruction을 수행중인 상태이다

Ready 
- 메모리 등 다른 조건을 모두 만족하고 CPU를 기다리는 상태이다 //조건이 준비되어있어야 한다는 것이 포인트

Blocked (wait, sleep)
- CPU를 주어도 당장 instruction을 수행할 수 없는 상태이다
- Process 자신이 요청한 event가 즉시 만족되지 않아 이를 기다리는 상태를 말한다 
event의 예 : I/O작업 혹은 디스크에서 파일을 읽어와야 하는 경우

**경우에 따라 추가되는 상태
New : 프로세스가 생성중인 상태이다
Terminated : 수행(execution)이 끝난 상태이다 (정리할게 남아있는 상태)

'CS지식 > 운영체제' 카테고리의 다른 글

TIL 정리_73  (0) 2022.04.30
TIL 정리_72  (0) 2022.04.29
TIL 정리_70(운영체제)  (0) 2022.04.27
TIL 정리_68  (0) 2022.04.24
TIL 정리_67(운영체제)  (0) 2022.04.23