stack(변수)
heap(동적할당)
I/O-bound process : I/O작업하는게 많을 때 (process가 실행되는게아니라 요청을 하는거)
CPU-bound process : CPU 계산을 더 많이 할 때 (ex.채굴)
프로세스 상태
Diagram of Process State
New: 만들어진 상태(실행되기 위해)
running: 실행되고 있는 상태
waiting: 아직 실행되지 않았고 실행할 예정이 아닐 수 있고
ready: 실행될 준비가 되어서 준비중, 잠시 중지 (리눅스 ctrl+z)
terminated: 프로세스 종료되어 없어지기 직전인 상태
# waiting에서 바로 running으로는 가지 않는다.
PCB: Process control Block (구조체형태로 저장하는것이 PCB다)
Switch from Process to Process (스위치할때 저장해야할 값을 말한다.)
(idle 휴면상태)
Process scheduling queue
- job queue
- ready queue : CPU실행되길 기다리고
- Device queue : 하드에서 읽고 쓰길 기다리는 것
queue(줄)
Scheduler
DISK -> Program
MEMORY -> Process
CPU -> TASK(실행)
-> JOB (처리 대기)
Long-term scheduler (Job Scheduler) : Process에서 어떤거를 JOB으로 올릴지 결정한다.
Short-term scheduler (CPU Scheduler) : JOB들중 어떤거를 CPU에 올릴지 결정한다.
Medium-term scheduler : I/O랑 CPU사용이 어느정도 균일해져 사용되어야 System busy를 줄일수있다.
Long-> 메모리에서 CPU로 올리니까 길다고 생각
Short -> CPU에서 CPU니깐 상대적으로 짧다 메모리에서 CPU로 가는 것보다, 이렇게 생각하자
Context switch
time is overhead(과부화) -> 하드웨어에 따라 달라진다.
Process Creation(cont.)
fork() - 프로세스 복제 (부모와 자식으로 나눠져간다, 분기를 나눈다. ex)소켓프로그래밍)
fork의 리턴값이 0이면 자식이다. -1(<0)은 오류(실패, 더이상 시스템의 리소스가 없을때).
IPC: Inter-Process Communication (프로세스 사이에 의사소통 수단)
Shared memory
Message passing
//Producer-Consumer (공급과 소비자)
//Message Passing
Communications in client-Server Systems
Sockets
Remote Procedure Call
Pipes
소켓에 관한 고찰: 소켓이 포트에 매핑되는거지만 소켓과 포트는 다르다는 것. (제대로 정리해놓자)
프로그램(프로세스)에 포트번호가 있다, 2^16의 포트번호 0~65535
Thread에 관한 고찰
Context switch
preemptive VS nonpreemptive
SFJ Scheduling
>preemptive는 BurstTime이 작은것이 우선적으로 가져간다.
Priority Scheduling
RR Scheduling 동일하게
'WEB (Feat.FOO) > 강의노트' 카테고리의 다른 글
6. FOO의 똥꼬쇼 (0) | 2017.01.23 |
---|---|
5. FOO의 똥꼬쇼 정리 (0) | 2017.01.16 |
3. FOO의 3번째 똥꼬쇼 (0) | 2017.01.09 |
2. FOO의 똥꼬쇼 2번째 (0) | 2017.01.04 |
1. FOO의 똥꼬쇼 강의노트 (0) | 2017.01.02 |