๐ Major Study (Bachelor)/๐ง Operating System26 [OS /์ด์ ์ฒด์ ] Thread Scheduling, Contention Scope, Pthread Scheduling, Linux Scheduler, Linux CFS Scheduler, Windows Scheduling, Process Synchronization, Critical Section, Progress Thread Scheduling Kernel Thread๊ฐ Scheduling์ ๋จ์๊ฐ ๋๋ค. PCB์ ๋ฉ๋ฌ๋ ค ์๋ LWP๊ฐ ์๋ค. LWP์ Thread๋ One to one correspondence๊ฐ ์๋ค. ํ๋์ ํ๋ก์ธ์ค๊ฐ ์๊ณ ์ฌ๋ฌ ๊ฐ์ Kernel์ ํด๋นํ๋ LWP๊ฐ ์กด์ฌํ๋ค. ์ค์ ์ค์ผ์ค๋ง์ LWP ๋จ์๋ก ์ด๋ฃจ์ด์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. Contention Scope PCS์ SCS๊ฐ ์๋ค. Scheduling์ kernel์์ ์ด๋ฃจ์ด์ง๊ณ (CPU๋ฅผ Kernel Thread๋ก ๋๋ ์ฃผ๋ ๊ฒ) ์ด๋ ๊ฒฝ์์ด ๋ฐ์ํ๋๋ฐ ์ด๋๋ฅผ SCS๋ผ๊ณ ํ๋ค. ๋ ๋ฒ์งธ๋ก Process ์์์์ ๊ฒฝ์์ด๋ค. User Process ์์์์ ๊ฒฝ์์ด PCS๋ผ๊ณ ํ๋ค. Pthread Scheduling pthread_attr_ini.. 2022. 4. 28. [OS / ์ด์ ์ฒด์ ] Priority Scheduling, Round Robin Scheduling, Multilevel Queue Scheduling, Multilevel FeedBack-Queue Scheduling, Multi Processor Scheduling, Processor Affinity Priority Scheduling ํ๋ก์ธ์ค ๋ณ ์ฐ์ ์์๊ฐ ๋ค ๋ค๋ฅด๋ค. System call์ ์ฐ์ ์์๋ฅผ ๋๊ฒ ์ค์ผ ํ๋ค. ์ฐ์ ์์ ๋์ ๊ฒ ๋จผ์ ์คํํ์๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. P1 - P5๊น์ง ์๊ณ Burst Time์ด ์๋ค. Burst Time์ CPU ์ ํ๋์ ๊ธธ์ด๋ฅผ ์๋ฏธํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ ํ๋ก์ธ์ค ๋ณ ์ฐ์ ์์๊ฐ ์ฃผ์ด์ ธ ์๋ค. Priority ๋ฒํธ๊ฐ ๋ฎ์ ์๋ก ์ฐ์ ์์๊ฐ ๋์ ๊ฒ์ด๋ค. 1๋ฒ์ด ๊ฐ์ฅ ๋์ ๊ฒ์ด๊ณ 5๋ฒ์ด ๊ฐ์ฅ ์ฐ์ ์์๊ฐ ๋ฎ์ ๊ฒ์ด๋ค. ๋์์ ํ๋ก์ธ์ค๊ฐ ๋ค์ด์ค๋ฉด P2๊ฐ ์ ์ผ ๋จผ์ ์คํ๋๋ค. (๋ฒํธ๊ฐ ๋ฎ์ ์ฐ์ ์์๊ฐ ๋์ ๊ฒ์ด ๋จผ์ ์คํ๋จ). 1ms ๋งํผ ๋๊ฒ ๋๊ณ ๊ทธ ๋ค์์ผ๋ก P5๊ฐ 5ms ๋งํผ ๋๊ฒ ๋๋ค. ์ด๋ ๊ฒ ๋์๊ฐ๊ฒ ๋๋ค. Prority Scheduling External ์ธ๋ถ์์ ์ฃผ๋.. 2022. 4. 25. [OS / ์ด์์ฒด์ ] CPU-I/O Burst Cycle, CPU Scheduler, Preemptive Scheduling, Scheduling Criteria, Shortest Job First Scheduling CPU-I/O Burst Cycle read from file์ ํ๋ฉด IO๋ฅผ ์ฌ์ฉํ๋ค. ํ๋ก์ธ์ค๊ฐ ์คํ์ ํ๋ค๋ณด๋ฉด ์ด๋จ ๋๋ IO๋ฅผ ์ฐ๊ณ ์ด๋จ ๋๋ CPU๋ฅผ ์ด๋ค. IO๋ฅผ ์ฌ์ฉํ๋ ๊ตฌ๊ฐ์ IO Burst๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ต๋๋ก ๋ฐฐ์น๊ฐ ๋๊ฒ ๋๋ค. Process๊ฐ ๋ง๋ค์ด์ง๋ฉด Ready Queue๋ก ๋ค์ด๊ฐ๋ค. ๊ฐ์ ์ข ๋ฃ๋ฅผ ์ํค๋ฉด ๋ง์ง๋ง์ด IO์ผ์๋ ์์ง๋ง ์ ์์ ์ธ ๊ฒฝ์ฐ ์ฒ์๊ณผ ๋ง์ง๋ง์ CPU์ด๋ค. Historgram of CPU burst Duration CPU burst์ ๋๋ถ๋ถ์ ์งง๋ค. ์ ์ฒด์ ์ผ๋ก ๋ณด๋ฉด ์งง์ ๊ฒ์ด ๋ง์ง๋ง ๊ฐ๋์ ๊ธด burst๊ฐ ๋์จ๋ค. ์งง์ ๊ฒฝ์ฐ๋ IO Bound์์ ์จ ๊ฑฐ๊ณ ๊ธด ๋ถ๋ถ์ CPU Bound์์ ์จ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. CPU Scheduler short term scheduler๋ก ๋ถ.. 2022. 4. 14. [ OS / ์ด์์ฒด์ ] Thread Pools, fork() and exec(), Thread Local Storage in pthread, Signal Handling Windows์์ ์ด๋ป๊ฒ ์ฐ์ด๋ ์ง๋ ์ ์ตํ ๋์ ๊ฒ Implicit Thread ๋ช ์์ ์ผ๋ก ๋ง๋ค์ง ์์๋ MultiThread๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค. THread Pools, OpenMP, Grand Central Dispatch์ ๋ฐฉ๋ฒ 3๊ฐ์ง ์กด์ฌํ๋ค. ์์ ๋ ๊ฐ์ง๋ง ์ค๋ช ํ ์์ Thread Pools ์์ฒญ์ ํ ๋๋ง๋ค Thread๋ฅผ ์ฒ๋ฆฌํ๊ณ ์์ ๊ณ ์ฒ๋ฆฌํ๊ณ ์์ ๊ณ ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค. ์๊ฐ์ ์งง์ง๋ง ๊ณ์ ๋ฐ๋ณต์ ์ธ ์์ ์ ํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธด๋ค. ์ด๋ฐ ๊ฒฝ์ฐ ์์ ํ๋ ๊ฒ๋ณด๋ค ๋ง๋ค๊ณ ์์ ๋ ๊ฒ์ Overhead๊ฐ ๋ ์ปค์ ธ๋ฒ๋ฆฐ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ฒ์ด Thread Pool์ด๋ผ๊ณ ํ๋ค. ์ด์์๋ Thread๋ฅผ ๋ช ๊ฐ ๋ง๋ค๊ณ ์ด๋ ค์ ์ด๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ ์ผ ์ค์ํ ์ ์ Th.. 2022. 4. 11. [OS / ์ด์์ฒด์ ] POSIX PThreads, Windows Threads, Thread Libraries ํ๋๋ Kernel Scheduler ๋ค๋ฅธ ํ๋๋ Kernel์ด ์ฐ๋ ๋๋ฅผ ์ ๊ณต์ํด๋ User Level์์ ์ ๊ณตํ๋ User level library๊ฐ ์กด์ฌํ๋ค. POSIX Pthreads๋ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ์ฒด๊ฐ ์๋๋ผ ์ด๋ ํ ํจ์๊ฐ ์ด๋ค ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค๊ณ ๊ธฐ๋กํ ๋ช ์ธ์ ๋๋์ด๋ค. LinuxThreads, NPTL ์ฐ๋ ๋ ๋ฑ์ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค. POSIX PThreads ์ด๋ค ํจ์๋ฅผ ์จ์ผ ํ๋๊ฐ? ์ ์ผ ์ค์ํ ํจ์๋ pthread_create ์ด๋ค. ์ฐ๋ ๋๋ฅผ ๋ง๋ค์ด๋ธ๋ค. ์ธ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๊ฐ ์ ์ผ ์ค์ํ๋ค. function pointer์ด๋ค. C์ธ์ด์์ ์ ๋ณด์ง ๋ชปํ๋ ๋ฌธ๋ฒ์ฒ๋ผ ๋๊ปด์ง ๊ฒ์ด๋ค. ํจ์๋ ํน์ ํ ์์น๋ก ๋ฐ์ด๋๋ ๊ฒ์ ์๋ฏธํ๋ค. ํจ์์ ์ด๋ฆ์ ์ฃผ์๋ผ๋ ๊ฒ์ .. 2022. 4. 7. [OS / ์ด์์ฒด์ ] TCB, Multicore Programming, Concurrency vs Parallelism, Amdahl's Law, Kernel Thread, Scheduler Activation Motivation ๋ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ณ ์ถ์ ๋ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์์ ์ฑ์ด ์ข์์ง๋ค. ํ๋์ ํ๋ก์ธ์ค ์์์ ์ฐ๋ ๋๋ฅผ ๋ ๊ฐ ์ฌ์ฉํ๋ค๊ฐ ํ๋์ ์ฐ๋ ๋๊ฐ ์ฃฝ์ผ๋ฉด ํด๋น ํ๋ก์ธ์ค๊ฐ ์ฃฝ์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์์ ์ฑ ์ธก๋ฉด์์ ์ข์ง ์๋ค. ํ์ง๋ง ์ฐ๋ ๋๋ ๋ ๊ฒฝ์ ์ ์ด๊ณ ์ ๋ณด๋ฅผ ๊ณต์ ํ ๋ ํธ๋ฆฌํ๋ค. ํ๋ก์ธ์ค๋ ์๋ ๋ ๋ฆฝ์ ์ธ Entity์ด๋ฏ๋ก ์ฝ์ง ์๋ค. ์ฐ๋ ๋๋ผ๋ฆฌ ํต์ ์ ํ ๋ Shared Memory๊ฐ ํ์ํ์ง ์๋ค. ๊ทธ์ ์ ์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฅํ๋ค. Overview ํ๋ก์ธ์ค๋ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๊ณ ๋ ๋ฆฝ์ ์ธ ์์์ด๋ค. ๋ฐ๋ฉด ์ฐ๋ ๋๋ ํ๋ก์ธ์ค ์์ ํ๋ก๊ทธ๋จ์ด์ฌ์ ์์์ ๊ณต์ ํด์ ์ฌ์ฉํ๋ค. Thread ID์ PC, register set, stack๋ค๋ก ๊ตฌ์ฑ๋์ด ์๋ค. PC๋ ์ฐ๋ ๋ ๋ง๋ค ํ๋์ฉ ๊ฐ์ง๊ณ .. 2022. 4. 4. [OS / ์ด์์ฒด์ ] Socket, Java Socket, Remote Procedure Call, Remote Method Invocation Reading Assignment message queue๋ฅผ ๋ง๋ค๊ณ ๊ทธ Queueใ ์์ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด๋ค. msgget()์ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ค๋ผ๋ ๊ฒ์ด ์๋๋ผ queue๋ฅผ ๊ฐ์ ธ์ค๋ผ๋ ๊ฒ์ด๋ค. msgsnd() ๋ฉ์์ง๋ฅผ queue์ ๋ฃ์ด๋ฌ๋ผ๊ณ ์์ฒญํ๋ ๊ฒ. msgctl์ ๋ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก IPC_RMID๋ ๋ฉ์์ง Queue ์์ฒด๋ฅผ ์ญ์ ํ๊ฒ ๋๋ค. Communications in Client-Server Systems Socket์ ๊ฐ์ฅ Primitiveํ ์ปค๋ฎค๋์ผ์ด์ ๋ฐฉ์์ด๋ค. RPC๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์์ ์ ๊ณตํ๋ ํจ์๋ฅผ ํธ์ถํ ์ ์๋ค. ๊ทธ ํจ์์ ๋ณธ์ฒด๋ ์๋ฒ์ ์๋ ๊ฒ์ด๋ค. ๋คํธ์ํฌ๋ฅผ ํตํ ํจ์ ํธ์ถ ๋ฐฉ์์ด๋ค. Pipe๋ ํด๋ผ์ฐ๋๋ผ๊ธฐ ๋ณด๋ค ๋ก์ปฌํ ํธ์ถ์ ํด๋นํ๋ค. Pipes. RMI, RPC์ .. 2022. 3. 31. [OS / ์ด์ ์ฒด์ ] Process Termination, IPC, Shared Memory Segment, Producer Consumer Problem, Message Passing Systems, System 5 ์์ธ์ฒ๋ฆฌ์ ๋ํ ์ฝ๋๋ ์ถ๊ฐํ ๊ฒ. More about wait Process Creation in win32 CreateProcess()๋ fork์ exec๋ฅผ ํฉ์ณ๋์ ํจ์๋ผ๊ณ ํ ์ ์๋ค. WaitForSingleObject()๋ wait function๊ณผ ๋น์ทํ ์ญํ ์ ํ๋ค. ZeroMemeory()๋ ๋ค์์ ์ค๋ช Process Termination exit() ์ ํ๊ณ ์ข ๋ฃ๋ฅผ ํ๊ฒ ๋ ๋ ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ ๊ฒ์ free ํ๊ณ ์ข ๋ฃํ๊ฒ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด free ์ํด๋ ๋๋ ๊ฒ์ธ๊ฐ? ์๋๋ค. ๋ฌด์กฐ๊ฑด free๋ก deallocate๋ฅผ ํด์ค์ผ ํ๋ค. ํ์ค์ ์ผ๋ก ๋๋ถ๋ถ์ ๊ฒฝ์ฐ loop๊ฐ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ๋น์ทํ ๋์์ ๋๋ฆฌ๊ฒ ๋๋๋ฐ Memory leak๊ฐ ์๊ธฐ๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์กฐ๊ธ์ฉ ๋ฒ๋ ค์ง๊ฒ ๋๋ค. ์ฒ์ ๋์ํ ๋.. 2022. 3. 28. [OS / ์ด์ ์ฒด์ ] Scheduling Queue, PCB in Linux, Scheduling Queue, Queue Diagram, Context Switch, Process Creation, Process Creation in UNIX Scheduling Queue Process๊ฐ ๋น์ฅ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์๋ฐ ํ ์ ์์ ๋ Queue์์ ๊ธฐ๋ค๋ ค์ผ ํ๋ค. Shared Resource ๋ณ๋ก Waiting Queue๊ฐ ๋ค ๊ฐ๋ณ๋ก ์กด์ฌํ๋ค. ์์ ์ ์ฐจ๋ก๊ฐ ๋๋ฉด Scheduler๊ฐ ์ ํ์ ํ๋ฉด ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค. PCB in Linux ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๋ค์ด ๋์๊ฐ๋ฉด์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค. ํ๋์ ํ๋ก์ธ์ค์ ํด๋นํ๋ ์ต๋์ ์๊ฐ์ time slice๋ผ๊ณ ํ๋ค. parent ์๋ Parent process๊ฐ ๋ค์ด๊ฐ๋ค. Parent process์ task_struct๋ ์์คํ ์ ์ฌ๋ฌ ๊ฐ ์๋๋ฐ child๋ก ์ฐ๊ฒฐ๋์ด์์์ ๋ณผ ์ ์๋ค. Children์ ์๊ธฐ๋ณด๋ค ๋ฎ์ Process ๊ฐ๋ฆฌํจ๋ค. ํฌ์ธํฐ ํ๋๊ฐ ์๋๋ผ ๋ฆฌ์คํธ์ ํํ๋ก ๋ค์ด๊ฐ์๋ค... 2022. 3. 24. [OS / ์ด์์ฒด์ ] Process State, Ready / Running State, Process Control Block, Process Scheduling Interrupt Hanlder๋ฅผ ํธ์ถํ๋ ์๊ฐ kernel mode๋ก ์ ํ๋๋ ๊ฒ์ด๋ค. size์ ํ์ ์ long ์ผ๋ก ๋ฐ๊ฟ ๊ฒ Processses ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ๋งํ๋ค. ์คํ์ ํ์ํ ๋ชจ๋ ๋ฆฌ์์ค๋ ํฌํจ๋๋ค. ์ฝ๋๋ค์ Instruction๋ค์ Sequence๋ฅผ ์๋ฏธํ๋ค. ์ฝ๋๊ฐ ์คํ๋๋ฉด ์ค๊ฐ์ ํ์ํ ๋ฐ์ดํฐ๋ค์ด ์กด์ฌํ๋ ๋ฐ ๊ทธ๊ฒ๋ค๋ ํ๋ก์ธ์ค์ ํฌํจ๋๋ค. ํ๋ก๊ทธ๋จ์ ์คํํ๋ค๊ฐ CPU๋ฅผ ์ฌ์ฉํ๊ณ ๋ ๋์ง์คํฐ๋ฅผ ๊ณ์ํด์ ์ฌ์ฉํ๋ค. Instruction Resgister๋ก Instruction์ ๊ฐ์ ธ์ค๊ฒ ๋๋ค. ํ์ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋์ง์คํฐ๋ก ๊ฐ์ ธ์์ ์ฒ๋ฆฌ๋ฅผ ํ๊ฒ ๋๋ค. ํ๋์จ์ด์ ์ ์ฅ์์ ๋ณด๋ฉด ๋ฆฌ์์ค์ ํด๋นํ์ง๋ง ๋์ง์คํฐ์ ๊ฐ๋ค์ ํ๋ก์ธ์ค์ ํด๋นํ๋ค. Process State ์ฒ์ Pro.. 2022. 3. 21. ์ด์ 1 2 3 ๋ค์