The Abstraction : The Process
* CPU 가상화
CPU가상화는 웹 어플리케이션들이 마치 자신 혼자 CPU를 독점하는 것 같은 illusion을 주어야한다.
이러한 환상은 time sharing, context switch, 스케쥴링 정책에 의해 가능하다.
* 프로세스
프로세스란 실행중인 프로그램의 인스턴스이다.
즉 프로그램이 실행되면 데이터는 메모리에, 명령들 즉 코드들은 CPU에 적재 되는데 그렇게 실행된 것을 프로세스라고 한다.
프로그램은 명령들과 데이터의 집합이다.
프로세스의 핵심으로는 Machine State가 있는데, 이는 메모리와 레지스터 등으로 이루어진다.
* 프로세스 API
프로세스 API는 프로세스 관련 함수로, 운영체제가 반드시 제공해야하는 기능이다.
Create : 프로세스 생성 방법
Destroy : 프로세스 강제 제거 방법
Wait 실행 중지까지 기다리는 인터페이스
Miscellaneous Control 일시정지, 대기, 재개 가능
Status 상태 정보 얻어내는 인터페이스
* 프로세스 생성
1. 코드와 정적 데이터를 메모리와 프로세스 주소공간에 탑재한다.
프로그램들은 실행 파일 형태로 저장된다.
2. 스택 영역을 할당한다.
스택에는 지역변수 파라미터 리턴주소 등을 저장한다.
3. 힙을 만든다. 힙은 동적 데이터를 저장.
4. 초기화 작업을 한다.
I/O 초기 셋업 .
각 프로세스는 기본값으로 Standard input output error를 연다.
5. 메인함수 (엔트리 포인트) 부터 running
* 프로세스 상태
Running : 프로세스가 실행중인 상태
Ready : 프로세스가 실행 대기중인 상태 ( 다른 프로세스가 cpu 를 사용중이기에 )
blocked : i/o와 같은 요청이 들어와 해당 요청이 마치길 기다리는 상태.
block이 끝났다고 바로 running이 아니다. 다른 프로세스가 종료되어야 running 가능하다.
6. PCB
Process Control Block
프로세스를 관리를 위한 정보를 저장하는 자료구조
프로세스가 생성될 때 같이 생성.
담고 있는 정보는 CPU 레지스터, 스케쥴링 정보 메모리 관리 정보 PID PPID I/O상태 Credentials 등 다양하다.
7. OS의 process관리 -> process api
시스템콜 활용.
'컴퓨터공학' 카테고리의 다른 글
HTTP & HTTPS (0) | 2022.09.03 |
---|---|
운영체제 정리 기록 - 1 (0) | 2022.08.24 |
CORS가 무엇인가. (0) | 2022.08.24 |
세션 쿠키 그리고 JWT (0) | 2022.08.22 |
인터넷 계층, 데이터링크 계층을 처리하는 기기 (0) | 2022.08.19 |