๐ Major Study (Bachelor)164 ์๊ณ ๋ฆฌ์ฆ 9์ฃผ์ฐจ ๋ชฉ์์ผ 2022. 4. 28. [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. 9์ฃผ์ฐจ ํ์์ผ ์๊ณ ๋ฆฌ์ฆ Graph Exploration Vertex์ ๊ฐ์ ๋ฌด์์ธ๊ฐ ์ผ์ ํ๋ Count, number ํ๋ ๊ฒ์ Visit์ด๋ผ๊ณ ํ๋ค. BFS์ DFS ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. Connected Component๊ฐ ๋ฌด์์ธ์ง๋ฅผ ์ฐพ์๋ด์ผ ํ๋ค. Vertex์ node ๋ค์ด ๋ค ์ฐ๊ฒฐ ์๋ ์ ๋ ์๋ค. ๋ ๋ฆฝ๋ Component๋ฅผ ํ๋จํ ์ ์์ด์ผ ํ๋ค. Spanning tree๋ฅผ ๊ณ์ฐํ๋ ๊ฒ๋ ๋ค์ ๊ณต๋ถํด๋ณผ ๊ฒ์ด๋ค. BFS Tree ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ Vertex๊ฐ ํฌํจ๋์ด์ผ ํ๋ค. ๋ชจ๋ Edge๋ ํฌํจ๋์ง ์์ ์๋ ์๋ค. Explored edge๋ ์ถํ์ ๋ ์์๋ณด๊ธฐ๋ก ํจ. One vertex at a time, Serial ๋ชจ๋์์ ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ ํ ๋ฒ์ Vertex๋ฅผ ๋ค๋ฃฌ๋ค. ์์์ vertex๋ฅผ ์ฌ์ฉํ๋.. 2022. 4. 27. [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. ์๊ณ ๋ฆฌ์ฆ 7์ฃผ์ฐจ ๋ชฉ์์ผ 105๋ฌ๋ฌ๋ก ๊ณ์ฐ๋๋ ์ด์ ์๊ฐํด๋ณด๊ธฐ. 2022. 4. 14. [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. ์๊ณ ๋ฆฌ์ฆ 7์ฃผ์ฐจ ์์์ผ Branch and Bound - Best First Search ๋ชจ๋ Node๋ฅผ ๋ฐฉ๋ฌธํ์ง ์๋๋ค. ๋ง๋ค์ง๋ ์๋๋ค. Start์์๋ ๋ ๊ฐ์ Node๋ฅผ ๋ง๋ค์ง๋ง Expand๋ฅผ ํ ๊ฒ์ธ๊ฐ ์๋๋ฉด ๊ทธ๋ง ๋ ๊ฒ์ธ๊ฐ๋ฅผ ๊ฒฐ์ ํด์ผ ๋๋ค. ๋ฐฉ๋ฌธํ์ง ์๋๋ค๋ฉด ๊ฒฝ์ฐ์ ์๊ฐ ์ค์ด๋ค๊ฒ ๋๋ค. ๊ทธ๋ด๋งํ ๊ฐ์น๊ฐ ์๋ ์ง๋ฅผ ํ๋จํ๋ ์์ ์ ํด์ผ ํ๋ค. Item should be sorted in descending order according to bi/wi ์ฒซ ๋ฒ์งธ O1์ด ๋จ์ ๋ฌด๊ฒ๋น ๊ฐ์น๊ฐ ํฐ ๊ฒ์ด ์ค๊ฒ ๋๋ sorting์ ๊ฑฐ์ณ์ผ ํ๋ค. Branch and Bound ๊ฐ๊ฐ์ Node๋ง๋ค Benefit weight bound๋ฅผ ๊ณ์ฐํ๋ค. ์ฒซ ๋ฒ์งธ ์์ดํ ์ Knapsack ์ง์ด๋ฃ์์ ๋ ์ด์ต์ ๊ณ์ฐํด์ผ ํ๋ค. Don't ch.. 2022. 4. 8. ์๊ณ ๋ฆฌ์ฆ 6์ฃผ์ฐจ ๋ชฉ์์ผ 2022. 4. 7. [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. ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 ยทยทยท 17 ๋ค์