๐Ÿค– Computer Science/Operating System

OS midterm ์ฃผ์š” ๊ฐœ๋… ์š”์•ฝ

yesolz 2024. 5. 1. 17:09
728x90
  • von Nuemann architecture
  • assert ํ•จ์ˆ˜: ์—๋Ÿฌ ๊ฒ€์ถœ. ํŠน์ • ์กฐ๊ฑด ๊ฑฐ์ง“์ด๋ฉด ํ”„๋กœ๊ทธ๋žจ ์ค‘๋‹จ
  • bus: Device controller์™€ memory๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒฝ๋กœ
  • local buffer: ๊ฐ Device controller๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฒ„ํผ
  • IDT: ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ๋ฐ›์œผ๋ฉด ์ด ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•จ
  • Device driver: Device controller์™€ OS ๊ฐ„์˜ ํ†ต์‹ ์„ ๋‹ด๋‹นํ•จ
  • kilo / mega / giga / tera: ์šฉ๋Ÿ‰ ๋‹จ์œ„
  • address space ๊ตฌ์„ฑ: code, data, stack, heap
  • process 5๊ฐ€์ง€ ์ƒํƒœ: new, ready, running, blocked, exit
  • fork ๋ฆฌํ„ด ๋ฐธ๋ฅ˜:
    • ๋ถ€๋ชจ: ์ž์‹ PID
    • ์ž์‹: 0
    • ์‹คํŒจ: -1
  • zombie process: wait ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ์ฃฝ์€ ํ”„๋กœ์„ธ์Šค (๋ถ€๋ชจ๊ฐ€ ์ฃฝ์œผ๋ฉด ๊ณ„์† ๊ธฐ๋‹ค๋ฆผ)
  • orphan process: ๋ถ€๋ชจ๋Š” ์ฃฝ์—ˆ์ง€๋งŒ ์ž์‹์€ ์‚ด์•„ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค
    • ํ•ด๊ฒฐ์ฑ… 2๊ฐ€์ง€: cascading termination(๋ถ€๋ชจ๊ฐ€ ์ฃฝ์œผ๋ฉด ์ž์‹๋„ ๊ฐ™์ด ์ฃฝ์ž„) / reparenting(init process๋กœ ๋ถ€๋ชจ ๋ณ€๊ฒฝ)
  • ์ปค๋„๋ชจ๋“œ / ์œ ์ €๋ชจ๋“œ
  • privileged instruction: ์ค‘์š” ์ฝ”๋“œ, ์ปค๋„๋ชจ๋“œ์—์„œ๋งŒ ์‹คํ–‰๋จ
  • hardware timer: OS๊ฐ€ ๊ฐ€์ƒ์˜ timer interrupt๋ฅผ ๋ฐœ์ƒ์‹œํ‚ด (interrupt handler table)
  • ์ปค๋„ ๋ชจ๋“œ ์‹คํ–‰: ์ธํ„ฐ๋ŸฝํŠธ(ํ•˜๋“œ์›จ์–ด,asynchronously) / ์‹œ์Šคํ…œ ์ฝœ(์†Œํ”„ํŠธ์›จ์–ด,synchronously)
  • IPC mechanism: signal, signal handler
  • pipe: ๋‘ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ 
    • ordinary pipe: unidirectional(๋‹จ๋ฐฉํ–ฅ), ์ฃผ๋กœ ๋ถ€๋ชจ-์ž์‹ ๊ฐ„ ํ†ต์‹ 
    • named pipe: bidirectional(์–‘๋ฐฉํ–ฅ), half-duplex
  • file descriptor
  • ํ‘œ์ค€์ž…์ถœ๋ ฅ ํŒŒ์ผ๋””์Šคํฌ๋ฆฝํ„ฐ:
    • 0 stdin
    • 1 stdout
    • 2 stderr
  • ํŒŒ์ดํ”„ ํŒŒ์ผ๋””์Šคํฌ๋ฆฝํ„ฐ:
    • pipefd[0] read
    • pipefd[1] write
  • parallelism: multi ํ”„๋กœ์„ธ์„œ, ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ
  • process์—์„œ OS code๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ & ํ”„๋กœ์„ธ์Šค ๊ฐ„ switching: system call, interrupt
  • concurrency vs parallelism (parallelism ์ƒ๊ธฐ๋ฉด concurrent ํ•˜๊ฒŒ ๋œ๋‹ค (O)
  • OS ์Šค์ผ€์ค„๋ง ํ: Ready Queue, Waiting Queue, (+Priority Queue, Completion Queue)
  • PCB: ํ”„๋กœ์„ธ์Šค ์ปจํ…์ŠคํŠธ์˜ ์ •๋ณด, Process Control Block
  • FCFS, SJF, STCF(Shortest Time to Completion First), RR: ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • starvation / preemptive
  • average waiting time(๋Œ€๊ธฐ ์‹œ๊ฐ„), turnaround time(๋Œ€๊ธฐ ์‹œ๊ฐ„๊ณผ ์‹คํ–‰ ์‹œ๊ฐ„), response time(์‘๋‹ต ์‹œ๊ฐ„์€ ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ธก์ •)
  • priority scheduling
  • priority inversion ํ•ด๊ฒฐ:
    • PIP(Priority Inheritance Protocol): ๋†’์€ ์šฐ์„ ์ˆœ์œ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž ์‹œ ์šฐ์„ ์ˆœ์œ„ ๋„˜๊ฒจ์คŒ. ๊ณต์œ  ์ž์›์„ ์ ์œ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์š”์ฒญํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋กœ ์ผ์‹œ์ ์œผ๋กœ ์ƒ์†
    • PCP(Priority Ceiling Protocol): ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์›์„ ์š”์ฒญํ•  ๋•Œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ž„
  • CPU bound process / I/O bound process
  • MLQ / MLFQ: ๋‹ค์ค‘ ํ ์Šค์ผ€์ค„๋ง
    • MLQ - ํ”„๋กœ์„ธ์Šค ํŠน์ง• ๋ณ„๋กœ ํ ์ •์˜, ์šฐ์„ ์ˆœ์œ„, time quantum
    • MLFQ (Multi-Level Feedback Queue) - + ๋™์ ์œผ๋กœ ์šฐ์„ ์ˆœ์œ„ ์ €์žฅ
  • proportional share ์Šค์ผ€์ค„๋ง: ๋กœํ„ฐ๋ฆฌ ์Šค์ผ€์ค„๋ง
  • CFS(Completely Fair Scheduling): ๋ฆฌ๋ˆ…์Šค ์Šค์ผ€์ค„๋ง, ์šฐ์„ ์ˆœ์œ„๊ฐ€ wait time๊ณผ CPU-time์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•จ, aging, targeted latency(์ตœ์†Œ 1๋ฒˆ์€ ์Šค์ผ€์ค„๋ง ๋˜์–ด์•ผ ํ•˜๋Š” ๊ธฐ๊ฐ„)
  • Multiple-Processor scheduling:
    • AMP(Asymmetric Multiprocessing): ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์œ„ํ•œ ๋‹จ์ผ ํ”„๋กœ์„ธ์„œ, ๋นˆ๋ฒˆํ•œ ์Šค์ผ€์ค„๋ง ๋ฌธ์ œ ๋ฐœ์ƒ
    • SMP(Symmetric Multiprocessing): ๊ฐ ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์Šค์ผ€์ค„๋ง, multicore processor -> push migration / pull migration
  • UMA(Uniform Memory Access) vs NUMA(Non-Uniform Memory Access): ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์†๋„์— ๋”ฐ๋ฅธ ์ฐจ์ด
    • UMA - ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์‹œ๊ฐ„ ๋ชจ๋“  ํ”„๋กœ์„ธ์„œ ๋™์ผ
    • NUMA - ๋‹ค๋ฆ„, Local memory ์กด์žฌ. remote memory ์ ‘๊ทผํ•  ๋•Œ ๋” ๋งŽ์€ ์‹œ๊ฐ„ ์†Œ์š”
  • affinity: ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์„ ํ˜ธ๋„ (soft / hard-์ง€์ •๊ฐ€๋Šฅ)
  • POSIX(Portable Operating System Interface): UNIX ๋ฐ ์œ ๋‹‰์Šค ๊ณ„์—ด OS์—์„œ ์ด์‹์„ฑ ์žˆ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค. ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ ๊ฐ„์˜ ํ˜ธํ™˜์„ฑ ์ œ๊ณต. system calls, library functions, command and utilities ์ •์˜ํ•จ
    • 1. ์‹œ์Šคํ…œ ์ฝœ(System Calls): ์šด์˜ ์ฒด์ œ์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค
    • 2. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜(Library Functions): ๊ณ ์ˆ˜์ค€์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜์™€ API
    • 3. ์ปค๋งจ๋“œ ๋ฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ(Command and Utilities): ํ‘œ์ค€ ๋ช…๋ นํ–‰ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฐ ์‰˜.
728x90