-
paging
-
Memory
- Hardware Basics
https://access.redhat.com/ko/articles/3118571
https://man7.org/linux/man-pages/man2/_syscall.2.html
-
Batch Job(시스템 상태)
- [상태]
- Create
- Run
- Terminate
- [상태]
-
시분할 시스템 상태(time-sharing)
- [상태]
-
Active State
- Create(생성)
- Readying(준비)
- Running(실행)
- Waiting(대기)
- Terminating(종료)
-
Inactive State
- Pause State(휴식)
- Suspend State(보류)
-
- [상태]
https://enlqn1010.tistory.com/30
stateDiagram-v2
[*New생성_상태] --> Ready
Ready --> Run : Schedule/Dispatch
Run --> Ready : Priority/Time<br>quantum<br>타이머 인터럽트
Ready --> Suspend/ready : Suspend
Suspend/ready --> Ready : Resume
Run --> Wait/block : I/O Request
Wait/block --> Ready : I/O Completion
Wait/block --> Suspend/wait : Suspend
Suspend/wait --> Wait/block: Resume
Suspend/wait --> Suspend/ready : Process complted I/O but still in suspend
Run --> [*Termination종료_상태] : Completion
stateDiagram-v2
[*New생성_상태] --> Ready
Ready --> Run : Schedule/Dispatch
Run --> Ready : Priority/Time<br>quantum<br>타이머 인터럽트
Ready --> Suspend/ready : Suspend
Suspend/ready --> Ready : Resume
Run --> Wait/block : I/O Request
Wait/block --> Ready : I/O Completion
Wait/block --> Suspend/wait : Suspend
Suspend/wait --> Wait/block: Resume
Suspend/wait --> Suspend/ready : Process complted I/O but still in suspend
Run --> [*Termination종료_상태] : Completion
- 큰 흐름
stateDiagram-v2
[*New생성_상태] --> Ready
Ready --> Run : Schedule/Dispatch
Run --> Ready : Priority/Time<br>quantum<br>타이머 인터럽트
Run --> [*Termination종료_상태] : Completion
- https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/6_CPU_Scheduling.html
- https://eun-jeong.tistory.com/17
---
title: CPU Scheduling
---
stateDiagram-v2
[*Plull_of_Job_in_Disk] --> Ready_Queue : Long term Scheduler
Ready_Queue --> Dispatcher : Short term Scheduler
Dispatcher --> CPU
Dispatcher --> Waiting_Queue : Mid-term Scheduler
Waiting_Queue --> I/O : Mid-term Scheduler
I/O --> Ready_Queue
CPU --> [*End]
---
title: CPU Scheduling
---
stateDiagram-v2
[*Plull_of_Job_in_Disk] --> Ready_Queue : Long term Scheduler
Ready_Queue --> Dispatcher : Short term Scheduler
Dispatcher --> CPU
Dispatcher --> Waiting_Queue : Mid-term Scheduler
Waiting_Queue --> I/O : Mid-term Scheduler
I/O --> Ready_Queue
CPU --> [*End]
-
CPU Scheduling(Preemptive VS. Non-Preemptive)
- Preemptive scheduling (If job does not block or exit, force an involuntary context switch after each quantum Q of CPU time)
- Non-Preemptive scheduling
-
https://www.cs.princeton.edu/courses/archive/fall21/cos318/lectures/8.CPUScheduling.pdf
-
Preemptive vs Non-Preemptive Cons Pros.
| Preemptive Scheduling | Non-preemptive Scheduling |
|---|---|
| A processor can be preempted to execute the different processes in the middle of any current process execution. | Once the processor starts its execution, it must finish it before executing the other. It can’t be paused in the middle. |
| CPU utilization is more efficient compared to Non-Preemptive Scheduling. | CPU utilization is less efficient compared to preemptive Scheduling. |
| Waiting and response time of preemptive Scheduling is less. | Waiting and response time of the non-preemptive Scheduling method is higher. |
| Preemptive Scheduling is prioritized. The highest priority process is a process that is currently utilized. | When any process enters the state of running, the state of that process is never deleted from the scheduler until it finishes its job. |
| Preemptive Scheduling is flexible. | Non-preemptive Scheduling is rigid. |
| Examples: – Shortest Remaining Time First, Round Robin, etc. | Examples: First Come First Serve, Shortest Job First, Priority Scheduling, etc. |
| Preemptive Scheduling algorithm can be pre-empted that is the process can be Scheduled | In non-preemptive scheduling process cannot be Scheduled |
| In this process, the CPU is allocated to the processes for a specific time period. | In this process, CPU is allocated to the process until it terminates or switches to the waiting state. |
| Preemptive algorithm has the overhead of switching the process from the ready state to the running state and vice-versa. | Non-preemptive Scheduling has no such overhead of switching the process from running into the ready state. |
- 스와핑(swapping)
- 프로세스를 보조기억장치의 일부 영역으로 쫓아내고 당장 필요한 프로세스를 적재하는 메모리 관리 기법
- 스왑 아웃(swap-out)
- 프로세스를 보조기억장치의 일부 영역으로 쫓아내는 것
- 스왑 인(swap-in)
- 스왑 아웃된 프로세스를 메모리에 적재하는 것
- 스왑 영역
- 스왑 아웃된 프로세스가 적재되는 보조기억장치 영역
https://ko.wikipedia.org/wiki/%EB%8B%A8%ED%8E%B8%ED%99%94
https://byjus.com/gate/external-fragmentation-in-os-notes/
https://www.geeksforgeeks.org/difference-between-internal-and-external-fragmentation/
https://en.wikipedia.org/wiki/Page_table
https://courses.engr.illinois.edu/cs241/su2012/lecture/1112-memory-finale.pdf
-
PTBR(Page Table Base Register)이란 대체 무엇인가?
-
How page table base register (PTBR) is used to locate the correct frame using Page Number?
-
[운영체제] TLB valid bit vs. Page Table valid bit
-
Valid Bit and Dirty Bit in page tables
https://en.wikipedia.org/wiki/Page_fault
- 자료가 많다. 굿 https://movahws.tistory.com/149
- Dirty Bit
