[μ 보μ²λ¦¬κΈ°λ₯μ¬ μ€κΈ°] μ΄μ체μ κΈ°μ΄ νμ©(2)
μ΄μ ν¬μ€ν
https://rkdrkd-history.tistory.com/16
[μ 보μ²λ¦¬κΈ°λ₯μ¬ μ€κΈ°] μ΄μ체μ κΈ°μ΄ νμ©(1)
1. μ΄μ체μ μ κ°μ μ΄μ체μ (OS, Operating System): μ»΄ν¨ν° μ¬μ©μμ νλμ¨μ΄ κ°μ μΈν°νμ΄μ€λ‘μ λμνλ μμ€ν μννΈμ¨μ΄μ μΌμ’ μν μ»΄ν¨ν°λ₯Ό νΈλ¦¬νκ³ , νλμ¨μ΄λ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©ν μ
rkdrkd-history.tistory.com
4. νλ‘μΈμ€ μ€μΌμ€λ§
νλ‘μΈμ€: μ΄μ체μ κ° κ΄λ¦¬νλ μ€νμ λ¨μλ‘ μ€ν μ€μΈ νλ‘κ·Έλ¨μ΄λΌ νλ€.
νλ‘μΈμ€ μ μ΄ λΈλ‘(PCB: Process Control Block)
- μ μ: μ΄μ체μ κ° νλ‘μΈμ€μ λν μ€μν μ 보λ₯Ό μ μ₯ν΄ λμ μ μλ μ μ₯ μ₯μ
- κ° νλ‘μΈμ€λ κ³ μ μ PCBλ₯Ό κ°μ§λ€.
- νλ‘μΈμ€κ° μμ±λ λ κ³ μ μ PCBκ° μμ±λκ³ , μ’ λ£λλ©΄ PCBλ μ κ±°λλ€.
- PCBμ μ μ₯λλ μ 보: νλ‘μΈμ€μ νμ¬ μν, νλ‘μΈμ€μ μ°μ μμ, CPU λ μ§μ€ν° μ 보 λ±λ±..
νλ‘μΈμ€ μν μ μ΄
- μ€λΉ(Ready) μν: νλ‘μΈμ€ μ€λΉ νμμ μ€νμ μ€λΉνκ³ μλ μνλ‘, CPUλ₯Ό ν λΉλ°κΈ° μν΄ κΈ°λ€λ¦¬κ³ μλ μν
- μ€ν(Running) μν: μ€λΉ νμ μλ νλ‘μΈμ€κ° CPUλ₯Ό ν λΉλ°μ μ€νλλ μν
- λκΈ°(Block) μν: νλ‘μΈμ€κ° μ /μΆλ ₯ μ²λ¦¬κ° νμνλ©΄ νμ¬ μν μ€μΈ νλ‘μΈμ€κ° μ /μΆλ ₯μ μν΄ λκΈ° μνλ‘ μ μ΄λλ€.
μ€λ λ(Thread)μ κ°λ
- μ μ΄μ νλ¦μ μλ―Ένλ©° νλ‘μΈμ€μμ μ€νμ κ°λ λ§μ λΆλ¦¬ν κ²μΌλ‘ νλ‘μΈμ€μ μΌλΆ νΉμ±μ κ°κ³ μκΈ° λλ¬Έμ κ²½λ(light weight) νλ‘μΈμ€λΌκ³ λ νλ€.
- νλ‘μΈμ€μ μ€ν λΆλΆμ λ΄λΉν¨μΌλ‘μ¨ μ€νμ κΈ°λ³Έ λ¨μκ° λλ€.
- μμλ νλ‘μΈμ€μ μμκ³Ό λ©λͺ¨λ¦¬λ₯Ό 곡μ νλ€.
- λ€μ€ μ€λ λλ νλ‘μΈμ€μ μμ±μ΄λ λ¬Έλ§₯ κ΅ν λ±μ μ€λ²ν€λλ₯Ό μ€μ¬ μ΄μνμ μ μ±λ₯μ κ°μ νλ€.
νλ‘μΈμ€ μ€μΌμ€λ§
1. νλ‘μΈμ€ μ€μΌμ€λ§μ κ°λ
- νλ‘μΈμ€μ μμ± λ° μ€νμ νμν μμ€ν μ μμμ ν΄λΉ νλ‘μΈμ€μ ν λΉνλ μμ μ λ»νλ€.
- μ€μΌμ€λ§μ κΈ°λ²μ λΉμ μ κΈ°λ²κ³Ό μ μ κΈ°λ²μΌλ‘ ꡬλΆλλ€.
2. νλ‘μΈμ€ μ€μΌμ€λ§μ λͺ©μ
- λͺ¨λ μμ λ€μ λν 곡μ μ±μ μ μ§νκΈ° μν λ°©λ²
- λ¨μ μκ°λΉ μ²λ¦¬λμ μ΅λν, μλ΅ μκ°, λ°ν μκ°, λκΈ° μκ° λ° μ€λ²ν€λ μ΅μν
3. λΉμ μ (Non-preemptive) μ€μΌμ€λ§
- CPUμ ν λΉλ°μΌλ©΄ λ€λ¦ νλ‘μΈμ€κ° CPUλ₯Ό κ°μ μ μ λΉΌμμμ μλ λ°©μμ΄λ€.
4. μ μ (Preemptive) μ€μΌμ€λ§
- ν νλ‘μΈμ€κ° CPUλ₯΄ ν λΉλ°μ μ€ν μ€μ΄λΌλ μ°μ μμκ° λμ λ€λ₯Έ νλ‘μΈμ€κ° CPUλ₯Ό κ°μ μ μΌλ‘ λΉΌμμ μ μλ λ°©μμ΄λ€.
λΉμ μ μ€μΌμ€λ§ μ’ λ₯
κΈ°λ² | μ€λͺ |
FCFS(First Come First Service) | μ€λΉμν νμ λμ°©ν μμλλ‘ CPUλ₯Ό ν λΉνλ κΈ°λ² |
SJF(Shortest Job First) | λκΈ°νλ νλ‘μΈμ€λ€ μ€μμ μ€νμκ°μ΄ κ°μ₯ μ§§μ νλ‘μΈμ€μκ² λ¨Όμ CPUλ₯Ό ν λΉνλ κΈ°λ² |
HRN(Highest Response-ratio Next) | μ΄λ€ μμ μ΄ μλΉμ€ λ°μ μκ°κ³Ό κ·Έ μμ μ΄ μλΉμ€λ₯Ό κΈ°λ€λ¦° μκ°μΌλ‘ κ²°μ λλ μ°μ μμμ λ°λΌ CPUλ₯Ό ν λΉνλ κΈ°λ² |
κΈ°νλΆ(Deadline) | μμ μ΄ μ£Όμ΄μ§ νΉλ³ν μκ°μ΄λ λ§λ£μκ° μμ μλ£λλλ‘ νλ κΈ°λ² |
μ°μ μμ(Priority) | λκΈ°νλ νλ‘μΈμ€μκ² λΆμ¬λ μ°μ μμκ° κ°μ₯ λμ νλ‘μΈμ€μκ² λ¨Όμ CPUλ₯Ό ν λΉνλ κΈ°λ² |
μ μ μ€μΌμ€λ§ μ’ λ₯
κΈ°λ² | μ€λͺ |
SRT(Shortest Remaining Time) | μ€ν μ€μΈ νλ‘μΈμ€μ λ¨μ μκ°κ³Ό μ€λΉμν νμ λμ°©ν νλ‘μΈμ€μ μ€ν μκ°μ λΉκ΅ν΄μ μ€ν μκ°μ΄ λ μ§§μ νλ‘μΈμ€μ CPUλ₯Ό ν λΉνλ κΈ°λ² |
RR(Round Robin) | μ£Όμ΄μ§ μκ° ν λΉλ μμ μμ μ λ§μΉμ§ μμΌλ©΄ μ€λΉμλ£ λ¦¬μ€νΈμ κ°μ₯ λ€λ‘ λ°°μΉνλ κΈ°λ² |
λ€λ¨κ³ ν(MQ, Multi-level Queue) | νλ‘μΈμ€λ€μ μ°μ μμμ λ°λΌ λ¨κ³λ³ μ€λΉ νμ λ°°μΉνλ κΈ°λ² |
λ€λ¨κ³ νΌλλ°± ν(MFQ, Multi-level Feedback Queue) | κ° μ€λΉμν νλ§λ€ λΆμ¬λ μκ° ν λΉλ μμ μλ£νμ§ λͺ»ν νλ‘μΈμ€λ λ€μ λ¨κ³μ μ€λΉμν νλ‘ μ΄λνλ κΈ°λ² |
λ¬Έλ§₯κ΅ν(Context Switching)
- νμ¬ CPU λ₯Ό μ¬μ©νμ¬ μ€νλκ³ μλ νλ‘μΈμμ μν μ 보λ₯Ό μ μ₯νκ³ ,μμΌλ‘ μ€νλ νλ‘μΈμ€μ μν μ 보λ₯Ό μ€μ ν λ€μμ μ€μμ²λ¦¬μ₯μΉλ₯Ό ν λΉνμ¬ μ€νμ΄ λλλ‘ νλ μμ
λ³ν νλ‘μΈμ€
- λ κ° μ΄μμ νλ‘μΈμ€λ€μ΄ λμμ μ€ν μνμ μλ κ²μ μλ―Ένλ€.
- μ¬λ¬ νλ‘μΈμ€λ€μ΄ λ 립μ μΌλ‘ μ€νλλ κ²μ λ 립μ λ³ν νλ‘μΈμ€λΌκ³ νλ©°, μλ‘ νλ ₯νλ©° λμμ μ€νλλ κ²μ λ³ν νλ‘μΈμ€λΌκ³ νλ€.
κ΅μ°© μν(DeadLock)
- κ΅μ°© μνλ μλ‘ λ€λ₯Έ νλ‘μΈμ€κ° μ μ νκ³ μλ μμμ μꡬνλ©° 무νμ κΈ°λ€λ¦¬λ νμμ΄λ€.
- κ΅μ°© μνλ μνΈλ°°μ , μ μ λ° λκΈ°, λΉμ μ , νν λκΈ°μ 4κ°μ§ λ°μ 쑰건μ λͺ¨λ λ§μ‘±ν΄μΌλ§ λ°μνλ€.
- κ΅μ°© μνλ₯Ό ν΄κ²°νκΈ° μν΄μλ μλ°©, ννΌ, λ°κ²¬, ν볡μ λ°©λ²μ΄ μλ€
5. νκ²½λ³μ
- μμ€ν μννΈμ¨μ΄μ λμμ μν₯μ λ―ΈμΉλ λμ μΈ κ°λ€μ λͺ¨μμ΄λ€.
- μ£Όμ νΉμ§: ꡬμ±(λ³μλͺ μ κ°), λ΄μ©(μμ€ν μ κΈ°λ³Έ ꡬμ±)
Windows μ£Όμ νκ²½λ³μ
- νκ²½λ³μλͺ μ¬μ©μ λ³μλͺ μλ€μ '%' λ₯Ό μΆκ°νλ€.
UNIX/LINUX μ£Όμ νκ²½λ³μ
- νκ²½λ³μλͺ μ¬μ© μ λ³μλͺ μμ '$'λ₯Ό μΆκ°νλ€.
6. μ΄μ체μ μ μ’ λ₯ λ° Shell Script
μ΄μ체μ μ μ’ λ₯
1. windows
- λ§μ΄ν¬λ‘μννΈμ¬μμ λ°ννκ³ μλ μ»΄ν¨ν° μ΄μ체μ
- GUI(Graphic Usr Interface)μ΄λ©°, μ μ ν λ©νμ€νΉμΌλ‘ μνλλ€.
- PnP(Plug and Play)κ° μ§μλλ€.
2. MS-DOS(Microsoft Disk Operating System)
- CUI(Charactor User Interface)μ΄λ©°, Single-User, Single-Taskμ νΉμ§μ κ°μ§λ€.
- νΈλ¦¬ ꡬ쑰 νμΌ μμ€ν μ΄λ€.
- λ΄λΆ λͺ λ Ήμ΄: λͺ λ Ήμ΄ μ²λ¦¬ 루ν΄μ΄ λ©λͺ¨λ¦¬μ μμ£Όνλ λͺ λ Ήμ΄(DIR, COPY, TYPE, CLS λ±)
- μΈλΆ λͺ λ Ήμ΄: λμ€ν¬μ νμΌλ‘ μ μ₯λ λͺ λ Ήμ΄(FORMAT, DISKCOPY, DISKCOMP λ±)
3. μ λμ€(UNIX)
- μ΄μμ±μ΄ λμΌλ©°, λνμ μ΄μ체μ μ΄λ€.
- CμΈμ΄λΌλ κ³ κΈ νλ‘κ·Έλλ° μΈμ΄λ‘ 컀λκΉμ§ μμ±λ μ΄μ체μ μ΄λ€.
- νμΌ μμ±, μμ , λ³΄νΈ κΈ°λ₯μ κ°μ§λ©°, λλ ν°λ¦¬ ꡬ쑰λ νΈλ¦¬ ꡬ쑰 ννμ΄λ€.
- λ©ν°νμ€νΉ(Mulit-Tasking)κ³Ό λ©ν° μ μ (Multi-User) μ΄μ체μ μ΄λ€.
4. 리λ μ€(LINUX)
- νκ°κΆκ³Ό μμ κΆμ κΆνμ κ°λλ€.
- λ©ν°νμ€νΉ(Mulit-Tasking)κ³Ό λ©ν° μ μ (Multi-User) μ μ§μνλ€.
- λμλ¬Έμλ₯Ό ꡬλ³νλ€.
- νμΌ νμ₯μλΌλ κ°λ μ΄ μλ€.
UNIXμ κ°μ
1. UNIXμ νΉμ§
- λνμ μ΄μ체μ μ΄λ€.
- λμ μ΄μμ±κ³Ό νμ₯μ±μ κ°μ§λ€.
- λ€νΈμνΉ μμ€ν μ΄λ€.
- κ³μΈ΅μ νμΌ μμ€ν μ΄λ€
2. 컀λ(Kernel)
- μ λμ€ μμ€ν μ μ€μ¬λΆμ ν΄λΉνλ©° μ£ΌκΈ°μ΅μ₯μΉμ μ μ¬λ ν μμ£Όνλ©΄μ μ€νλλ€.
- νλ‘κ·Έλ¨ κ΄λ¦¬, κΈ°μ΅μ₯μΉ κ΄λ¦¬, μ μΆλ ₯ κ΄λ¦¬, νμΌ κ΄λ¦¬, μμ€ν νΈμΆ μΈν°νμ΄μ€ λ±μ κΈ°λ₯μ λ΄λΉνλ€.
- νλμ¨μ΄λ₯Ό μΊ‘μννλ€.
- λλΆλΆμ΄ CμΈμ΄λ‘ κ°λ°λμ΄ μ΄μμ±κ³Ό νμ₯μ±μ΄ λ°μ΄λλ€.
3. μ(Shell)
- λͺ λ Ήμ΄ ν΄μκΈ°μ΄λ€.
- μ¬μ©μμ μμ€ν κ°μ μΈν°νμ΄μ€ μν μ νλ€.
4. μ νΈλ¦¬ν°(Utility)
- μ¬μ©μμ νΈμλ₯Ό μν νλ‘κ·Έλ¨μ μ 곡νλ€.
- λ¬Έμ νΈμ§κΈ°, μ»΄νμΌλ¬, μ λ ¬ κΈ°λ₯μ μ 곡νλ€.
Shell Script
- μ(Shell): 컀λκ³Ό μ μ λ₯Ό μ΄μ΄μ£Όλ λͺ λ Ήμ΄ ν΄μκΈ°
- μ’ λ₯: BASH Shell, Bourne Shell, C Shell, Korn Shell
- μ μ€ν¬λ¦½νΈ(Shell Script)λ μμμ μ¬μ©ν μ μλ λͺ λ Ήμ΄λ€λ‘ μμ±λ μ νλ‘κ·Έλ¨μ μλ―Ένλ€.
- μ μ€ν¬λ¦½νΈλ λͺ λ Ήμ΄, λ³μ, μ μ΄λ¬Έ, 쑰건μ, λ©ν λ¬Έμ λ±μΌλ‘ ꡬμ±λλ€.
- μ μ€ν¬λ¦½νΈλ cμΈμ΄μ μ μ¬νλ©° μ€ν¬λ¦½νΈ μΈμ΄μ΄κΈ° λλ¬Έμ μ»΄νμΌμ΄ νμνμ§ μλ€.