λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Life/Study

[운영체제] 1κ°•. 운영체제 μ†Œκ°œ - 1

<μš΄μ˜μ²΄μ œλž€?>

- λŒ€ν‘œμ  μ‹œμŠ€ν…œ μ†Œν”„νŠΈμ›¨μ–΄

- 컴퓨터 μ‹œμŠ€ν…œμ˜ μžμ›μ„ κ΄€λ¦¬ν•˜κ³ , ν”„λ‘œκ·Έλž¨μ΄ λ™μž‘ν•˜κΈ° μœ„ν•œ μ„œλΉ„μŠ€ μ œκ³΅ν•˜λŠ” "ν”„λ‘œκ·Έλž¨λ“€μ˜ λͺ¨μŒ"

 

 

<운영 체제의 μ—­ν• >

1. 컴퓨터 μ‹œμŠ€ν…œμ˜ μžμ› 관리

 - μžμ›μ΄λž€? ν•˜λ“œμ›¨μ–΄, μ†Œν”„νŠΈμ›¨μ–΄, 데이터

 - μ˜ˆμ‹œ: μ €μž₯μž₯치 데이터 읽기, ν‚€λ³΄λ“œλ‚˜ 마우슀 μ œμ–΄, ν”„λ‘œκ·Έλž¨ λ™μ‹œ μ‹€ν–‰ μ‹œ CPU λ©”λͺ¨λ¦¬ 효율적 관리 λ“±

 

2. μ‚¬μš©μž 지원

 - μ‚¬μš©μžκ°€ λ‚΄λ¦° λͺ…λ Ή(클릭, command λ“±)을 운영 μ²΄μ œκ°€ ν•΄μ„ν•˜μ—¬ λ™μž‘ 및 μ‹€ν–‰ μ‹œν‚΄

 - μ‚¬μš©μžμ™€ ν•˜λ“œμ›¨μ–΄ μ‚¬μ΄μ˜ 맀개체 μ—­ν• 

 - μ‚¬μš©μžμ—κ²Œ νŽΈμ˜μ„±μ„ μ œκ³΅ν•˜λŠ” λͺ©μ 

 

 

<컴퓨터 μ‹œμŠ€ν…œκ³Ό 운영 체제>

πŸ§‘‍🌾과거: μš΄μ˜μ²΄μ œκ°€ μ—†λ˜ 초기 컴퓨터 μ‹œμŠ€ν…œ

- μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ 직접 컴퓨터 μ‹œμŠ€ν…œμ˜ μžμ›μ œμ–΄ (ν”„λ‘œκ·Έλž˜λ° λΉ‘μ…ŒμŒ!)

 

μ‚¬μš©μž -> 
           <- (μ‘μš©ν”„λ‘œκ·Έλž¨(ν•˜λ“œμ›¨μ–΄))

 

** μ—¬λŸ¬ μ‚¬μš©μžκ°€ ν•˜λ“œμ›¨μ–΄λ₯Ό κ³΅μœ ν•˜λŠ” 경우, μžμ› λΆ„ν•  어렀움!! (좩돌 λ°œμƒ κ°€λŠ₯μ„±)

 

 

πŸ‘½ν˜„μž¬: μš΄μ˜μ²΄μ œκ°€ μžˆλŠ” 컴퓨터 μ‹œμŠ€ν…œ λ“±μž₯

- ν•˜λ“œμ›¨μ–΄μ™€ μ‘μš© ν”„λ‘œκ·Έλž¨ 사이에 운영 체제 μœ„μΉ˜ν•˜κ²Œ 됨 (νŽΈν•˜κ²Œ ν•¨μˆ˜λ§Œ κ°€μ Έλ‹€ μ“°λ©΄ 됨!)

- μš΄μ˜μ²΄μ œκ°€ 컴퓨터 μ‹œμŠ€ν…œμ˜ μžμ› μ œμ–΄. (μ€‘κ°„μ—μ„œ μ€‘μž¬ μ—­ν• . κ³΅μ •ν•˜κ²Œ μžμ› λ°°λΆ„)

 

 

<컀널 λͺ¨λ“œμ™€ μ‚¬μš©μž λͺ¨λ“œ>

πŸ’πŸ»‍β™€οΈν”„λ‘œκ·Έλž¨μ΄ 직접 μžμ›μ„ κ°•μ œλ‘œ κ°€μ Έλ‹€ μ“°λŠ” κ±Έ 막기 μœ„ν•΄μ„œ '컀널 λͺ¨λ“œ', 'μ‚¬μš©μž λͺ¨λ“œ' ꡬ뢄 μ‹œν‚΄.

 

1. 컀널 λͺ¨λ“œ (a.k.a μˆ˜νΌλ°”μ΄μ € λͺ¨λ“œ)

 - 'ν•˜λ“œμ›¨μ–΄λ₯Ό 직접 μ œμ–΄'ν•  수 μžˆλŠ” CPU λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” λͺ¨λ“œ.

 - μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ μ•„λ‹Œ!! 운영체제의 컀널이 λ™μž‘ν•˜κ²Œ 됨.

 

2. μ‚¬μš©μž λͺ¨λ“œ (a.k.a 보호 λͺ¨λ“œ)

 - On the contrary, μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ λ™μž‘ν•˜λŠ” λͺ¨λ“œ!!

 - μ‚¬μš©μžκ°€ 보톡 μ‘μš© ν”„λ‘œκ·Έλž¨μ„ μ‚¬μš©ν•˜λ©΄? μ‚¬μš©μž λͺ¨λ“œ => ν•˜λ“œμ›¨μ–΄λ₯Ό 직접 μ œμ–΄ν•  수 μžˆλŠ” CPU λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•  수 μ—†λŠ” λͺ¨λ“œ(μ œν•œμ )

 

 

<컀널(kernel) μ΄λž€?>

- 컀널 λͺ¨λ“œμ—μ„œ λ™μž‘ν•˜λŠ” 운영 체제의 핡심 μš”μ†Œ

- μ‘μš© ν”„λ‘œκ·Έλž¨κ³Ό ν•˜λ“œμ›¨μ–΄ μ‚¬μ΄μ—μ„œ 맀개체/μ€‘κ°œ 역할을 ν•œλ‹€.

- 운영 체제 μžμ²΄κ°€ 그럼..컀널?!  => μ–΄.λ–».게. '컀널을 ꡬ성' ν•˜λŠλƒ, 에 λ”°λΌμ„œ 차이가 λ°œμƒν•¨!

 

 

<μ»€λ„μ˜ ꡬ성 방식>

 

1. μΌμ²΄ν˜• 컀널 (monolithic kernel) πŸ€”cf. 컀널이 내뢀에 μœ„μΉ˜..κ³΅μ‚°μ£Όμ˜λ‚˜ μ‚¬νšŒμ£Όμ˜κ°€ λ– μ˜€λ₯΄λŠ” κ³΅λ™μ²΄μ˜ νš¨μœ¨μ„ κ·ΉλŒ€ν™”ν•œ μ‹œμŠ€ν…œ.

 - 운영 체제의 λͺ¨λ“  μ„œλΉ„μŠ€κ°€ 컀널 μ•ˆμ— 포함

 - μž₯점: 컀널 λ‚΄λΆ€ μš”μ†Œλ“€μ΄ μ„œλ‘œ '효율적' 으둜 μƒν˜Έ μž‘μš© ν•œλ‹€.

 - 단점: ν•œ μš”μ†ŒλΌλ„ 였λ₯˜κ°€ λ°œμƒν•˜λ©΄? μ‹œμŠ€ν…œ 전체에 였λ₯˜/μž₯μ•  λ°œμƒ κ°€λŠ₯!

 - μ˜ˆμ‹œ: UNIX, Linux ==> 컀널 = OS (컀널이 κ³§ 운영체제)

 

2. 마이크둜 컀널 (micro kernel) πŸ€”cf. 컀널이 외뢀에 μœ„μΉ˜. μž‘μ€ μ •λΆ€? 자유λ₯Ό μ€‘μ‹œ..

 - 운영 체제 μš”μ†Œ 'λŒ€λΆ€λΆ„μ„ μ™Έ.λΆ€.둜' 뢄리.

 - λ©”λͺ¨λ¦¬ 관리, λ©€ν‹° νƒœμŠ€ν‚Ή, ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신(IPC) λ“±μ˜ 졜.μ†Œ.ν•œ.의 μš”μ†Œλ§Œ 컀널 내에 남김.

 - μž₯점: μƒˆλ‘œμš΄ μ„œλΉ„μŠ€λ₯Ό μΆ”κ°€ν•˜μ—¬ 운영 체제 ν™•μž₯이 쉬움! μœ μ§€λ³΄μˆ˜ 용이!

 - 단점: 컀널 μ™ΈλΆ€ μš”μ†Œλ“€ 사이에 'IPC'κ°€ ν•„μš”... => μ„±λŠ₯ μ €ν•˜μ˜ μš”μ†Œ

 

<컀널/μ‚¬μš©μž λͺ¨λ“œ: μ–΄λ–»κ²Œ μ „ν™˜λ˜λŠ”κ°€?>

일반적으둜 μ‚¬μš©μžλ“€μ€ μ‘μš© ν”„λ‘œκ·Έλž¨ μ‚¬μš© μ€‘μ—λŠ” "μ‚¬μš©μž λͺ¨λ“œ(보호 λͺ¨λ“œ)"

but, μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ ν•˜λ“œμ›¨μ–΄μ— λŒ€ν•œ μ œμ–΄κ°€ ν•„μš”ν•œ 상황이 λ°œμƒν•œλ‹€λ©΄?

(μ˜ˆμ‹œ. 화면에 무언가 좜λ ₯, cout λͺ…λ Ή λΆ€λ₯΄κΈ° => "μ‹œμŠ€ν…œ 호좜" ν•„μš”!!)

 

* μ‹œμŠ€ν…œ ν˜ΈμΆœμ΄λž€? μš΄μ˜μ²΄μ œμ—κ²Œ ν•˜λ“œμ›¨μ–΄ μ œμ–΄, μ„œλΉ„μŠ€ μš”μ²­μ΄λ‚˜ ν•˜λ“œμ›¨μ–΄ μžμ› μ‚¬μš© μš”μ²­!

 

κ²°λ‘ : μ‚¬μš©μž λͺ¨λ“œ -> μ‹œμŠ€ν…œ 호좜 -> 컀널 λͺ¨λ“œ