🚧

운영체제(OS, Operation Systems) λž€?

purpplee 2021. 12. 18. 20:51

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

컴퓨터 ν•˜λ“œμ›¨μ–΄ λ°”λ‘œ μœ„μ— μ„€μΉ˜λ˜μ–΄ μ‚¬μš©μž 및 λ‹€λ₯Έ μ†Œν”„νŠΈμ›¨μ–΄μ™€ μ—°κ²°μ‹œμΌœμ£ΌλŠ” μ†Œν”„νŠΈμ›¨μ–΄μ΄λ‹€. 쒁은 μ˜λ―Έλ‘œλŠ” 컀널을 κ°€λ¦¬ν‚€λŠ”λ° 이 컀널은 운영체제의 핡심 μ½”μ–΄λ‘œ λΆ€νŒ… ν›„ 항상 λ©”λͺ¨λ¦¬μ— μƒμ£Όν•˜λŠ” 뢀뢄을 λ§ν•œλ‹€. 넓은 μ˜λ―Έλ‘œλŠ” 이 컀널을 포함해 μ£Όλ³€ μ‹œμŠ€ν…œ μœ ν‹Έλ¦¬ν‹°, μœˆλ„μš°μ¦ˆλ₯Ό μ„€μΉ˜ν–ˆμ„ λ•Œ 기본적으둜 μ„€μΉ˜λ˜μ–΄ μžˆλŠ” μœ ν‹Έλ¦¬ν‹°λ“€μ„ μ „λΆ€ 포함해 λ§ν•˜κΈ°λ„ ν•œλ‹€.

 

운영체제의 λͺ©ν‘œ

μš΄μ˜μ²΄μ œλŠ” μ‚¬μš©μž, 각쒅 μ†Œν”„νŠΈμ›¨μ–΄μ™€ ν•˜λ“œμ›¨μ–΄ 사이에 μœ„μΉ˜ν•˜κΈ° λ•Œλ¬Έμ— 크게 두 가지 λͺ©ν‘œλ₯Ό 가진닀.

1) ν”„λ‘œμ„Έμ„œ, λ©”λͺ¨λ¦¬, IOμž₯치 같은 컴퓨터 μ‹œμŠ€ν…œμ˜ μžμ›(resource)을 효율적으둜 관리

예λ₯Ό λ“€μ–΄ λ©”λͺ¨λ¦¬λŠ” ν•œμ •μ μΈ 곡간을 가지기 λ•Œλ¬Έμ— n개의 ν”„λ‘œκ·Έλž¨μ„ 돌릴 λ•Œ μ μ ˆν•œ 곡간을 λΆ„λ°°ν•΄μ€˜μ•Ό ν•œλ‹€. 이 뿐만 μ•„λ‹ˆλΌ ν”„λ‘œμ„ΈμŠ€, 파일, λ©”μ‹œμ§€ 등도 κ΄€λ¦¬ν•œλ‹€.

 

2) μ‚¬μš©μžλ‚˜ 각쒅 μ†Œν”„νŠΈμ›¨μ–΄κ°€ 컴퓨터 μ‹œμŠ€ν…œμ„ νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλŠ” ν™˜κ²½μ„ 제곡

μ—¬λŸ¬ μ†Œν”„νŠΈμ›¨μ–΄κ°€ 마치 λ™μ‹œμ— μ‹€ν–‰λ˜λŠ” 것같은 ν™˜κ²½μ„ μ œκ³΅ν•΄μ£Όκ³ , ν•˜λ“œμ›¨μ–΄λ₯Ό 직접 μ‘°μž‘ν•˜λŠ” λ³΅μž‘ν•œ 뢀뢄을 μš΄μ˜μ²΄μ œκ°€ λŒ€μ‹  ν•΄μ€€λ‹€.

 

운영체제의 λΆ„λ₯˜

μ˜€λŠ˜λ‚  μš΄μ˜μ²΄μ œλŠ” 닀쀑 μž‘μ—…, 닀쀑 μ‚¬μš©μž, μ‹œλΆ„ν•  방식을 μ±„νƒν•˜κ³  μžˆλ‹€.

 

λ™μ‹œμž‘μ—… κ°€λŠ₯μ—¬λΆ€

단일 μž‘μ—…(single tasking)

ms-dos 같이 μ΄μ „μ˜ μš΄μ˜μ²΄μ œλŠ” ν•œ λ²ˆμ— ν•˜λ‚˜λ§Œ μž‘μ—…λ§Œμ„ μ²˜λ¦¬ν–ˆλ‹€.

 

닀쀑 μž‘μ—…(multi tasking)

μ˜€λŠ˜λ‚ μ˜ μš΄μ˜μ²΄μ œλŠ” λŒ€λΆ€λΆ„ λ™μ‹œμ— μ—¬λŸ¬ μž‘μ—…μ„ μ²˜λ¦¬ν•œλ‹€. ν•œ λͺ…λ Ήμ˜ μˆ˜ν–‰μ΄ λλ‚˜κΈ° 전에 λ‹€λ₯Έ λͺ…령을 μˆ˜ν–‰ν•  수 μžˆλ‹€.

 

μ‚¬μš©μžμ˜ 수

단일 μ‚¬μš©μž(single user)

ms-dos λ‚˜ windows λŠ” ν•˜λ‚˜μ˜ μ‚¬μš©μžλ§Œ μ‚¬μš©ν•  수 μžˆλ‹€.

 

닀쀑 μ‚¬μš©μž(multi user)

UNIX, NT server 같은 μš΄μ˜μ²΄μ œλŠ” μ—¬λŸ¬ μ‚¬μš©μžκ°€ λ™μ‹œμ— 접속해 μ‚¬μš©ν•  수 μžˆλ‹€.

 

μ²˜λ¦¬λ°©μ‹

일괄 처리(batch processing)

μž‘μ—… μš”μ²­μ„ μΌμ •λŸ‰ λͺ¨μ•„ ν•œκΊΌλ²ˆμ— μ²˜λ¦¬ν•œλ‹€. μž‘μ—…μ΄ μ’…λ£Œλ  λ•ŒκΉŒμ§€ κΈ°λ‹€λ €μ•Όν•œλ‹€. ν˜„λŒ€μ˜ μš΄μ˜μ²΄μ œμ—μ„œλŠ” 찾아보기 νž˜λ“  방식이닀. 

 

μ‹œλΆ„ν• (time sharing)

μ—¬λŸ¬ μž‘μ—…μ„ μˆ˜ν–‰ν•  λ•Œ μ•„μ£Ό 짧은 μ‹œκ°„ λ‹¨μœ„λ‘œ λΆ„ν• ν•˜μ—¬ 마치 λ™μ‹œμ— μ‹€ν–‰λ˜λŠ” κ²ƒμ²˜λŸΌ μ²˜λ¦¬ν•œλ‹€. 일괄 처리 μ‹œμŠ€ν…œμ— λΉ„ν•΄ 짧은 응닡 μ‹œκ°„μ„ 가진닀. ν˜„λŒ€ μš΄μ˜μ²΄μ œλ“€ λŒ€λΆ€λΆ„μ΄ μ±„νƒν•œ 방식이닀.

 

μ‹€μ‹œκ°„(Realtime OS)

미사일 μ œμ–΄, λ‘œλ΄‡ μ œμ–΄, μ›μžλ‘œ/곡μž₯ μ œμ–΄ λ“± 정해진 μ‹œκ°„ 내에 μ–΄λ–€ 일을 μ²˜λ¦¬ν•΄μ•Όν•˜λŠ” μ‹€μ‹œκ°„ μ‹œμŠ€ν…œμ„ μœ„ν•œ μš΄μ˜μ²΄μ œλ‹€.

 

운영체제 κ΄€λ ¨ μš©μ–΄

Multitasking, Multiprogramming, Time sharing, Multiprocess

이 μš©μ–΄λ“€μ€ μ»΄ν“¨ν„°μ—μ„œ μ—¬λŸ¬ μž‘μ—…μ„ λ™μ‹œμ— μˆ˜ν–‰ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€. μ’€ 더 μ—„λ°€νžˆ μ •μ˜λ₯Ό ν•˜μžλ©΄, Multitasking은 μ—¬λŸ¬ μž‘μ—…μ„ λ™μ‹œμ— μˆ˜ν–‰ν•˜λŠ” 것, Multiprogramming은 λ©”λͺ¨λ¦¬μ— μ—¬λŸ¬ ν”„λ‘œκ·Έλž¨μ΄ λ™μ‹œμ— μ˜¬λΌκ°€ μžˆλŠ” 것, Time sharing은 CPU의 μ‹œκ°„μ„ λΆ„ν• ν•˜μ—¬ λ‚˜λˆ„μ–΄ μ“°λŠ” 것을 μ˜λ―Έν•œλ‹€.

 

Multiprocessor

ν•˜λ‚˜μ˜ 컴퓨터에 CPUκ°€ μ—¬λŸ¬κ°œ λΆ™μ–΄μžˆλŠ” 것이닀.

 

운영체제의 예

μœ λ‹‰μŠ€(UNIX)

λŒ€ν˜•μ»΄ν“¨ν„°(μ„œλ²„)λ₯Ό μœ„ν•΄ λ§Œλ“€μ–΄μ§„ μš΄μ˜μ²΄μ œλ‹€. λ•Œλ¬Έμ— λ©€ν‹°νƒœμŠ€ν‚Ήκ³Ό λ©€ν‹°μ‚¬μš©μžλ₯Ό μ§€μ›ν•˜κ³ , 초창기 λ³΅μž‘ν•œ μ–΄μ…ˆλΈ”λ¦¬μ–΄λ₯Ό μ‘°μž‘ν•˜κ³  운영체제λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ§„ Cμ–Έμ–΄λ‘œ μž‘μ„±λ˜μ—ˆλ‹€. 참고둜 Cμ–Έμ–΄λŠ” 기계어와 κ°€κΉŒμ›Œμ„œ 기계 μͺ½μ— 많이 쓰인닀. μ „ν˜€ λ‹€λ₯Έ 컴퓨터에 μ΄μ‹ν•˜κΈ° 쉽고 ν™•μž₯에도 μš©μ΄ν•˜λ‹€.

 

곡개 μ†Œν”„νŠΈμ›¨μ–΄ 정신에 따라 μ†ŒμŠ€μ½”λ“œκ°€ κ³΅κ°œλ˜μ–΄μžˆλ‹€. Linux 도 μœ λ‹‰μŠ€ κ³„μ—΄μ˜ 운영체제둜 λ§ˆμ°¬κ°€μ§€λ‘œ μ†ŒμŠ€μ½”λ“œκ°€ κ³΅κ°œλ˜μ–΄ μžˆμ–΄μ„œ λˆ„κ΅¬λ‚˜ κ°€μ Έλ‹€ μ“Έ 수 μžˆλ‹€. 이 λ¦¬λˆ…μŠ€λŠ” 개인 μ‚¬μš©μžκ°€ 쓰기에도 μ ν•©ν•˜λ‹€.

 

μœˆλ„μš°μ¦ˆ(Windows)

단일 μ‚¬μš©μž, 닀쀑 μž‘μ—…μ„ μ§€μ›ν•˜λŠ” GUI 기반의 μš΄μ˜μ²΄μ œλ‹€. 개인용 컴퓨터에 주둜 쓰인닀.

 

운영체제의 ꡬ쑰

CPUλŠ” μ–΄λ–€ ν”„λ‘œμ„ΈμŠ€μ—κ²Œ λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•˜κ³  λ‹€μ‹œ 뺄지 μ •ν•˜λŠ” CPU μŠ€μΌ€μ€„λ§ μž‘μ—…μ„ μˆ˜ν–‰ν•œλ‹€. λ¨Όμ € μ‹€ν–‰λœ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ¨Όμ € μ²˜λ¦¬ν•˜λ©΄ λ‚˜μ€‘μ— μ‹€ν–‰λ˜λŠ” ν”„λ‘œμ„ΈμŠ€μ˜ 응닡 μ‹œκ°„μ„ 보μž₯ν•  수 μ—†μœΌλ―€λ‘œ 이λ₯Ό 효율적으둜 ν•΄κ²°ν•˜κΈ° μœ„ν•œ λ°©λ²•μœΌλ‘œ μŠ€μΌ€μ€„λ§ ν•œλ‹€.

 

Memory λŠ” ν•œμ •λœ 곡간을 가지고 있기 λ•Œλ¬Έμ— 이 ν•œμ •λœ 곡간을 μ–΄λ–»κ²Œ 효율적으둜 쓸지 λ©”λͺ¨λ¦¬ 관리도 ν•΄μ•Ό ν•œλ‹€. μ‹€ν–‰λœ ν”„λ‘œμ„ΈμŠ€ 전체λ₯Ό λ©”λͺ¨λ¦¬μ— 올리면 전체 μ‹œμŠ€ν…œμ΄ μ›ν™œν•˜κ²Œ λŒμ•„κ°€μ§€ μ•Šμ„ν…Œλ‹ˆ CPU λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μž‘μ—…μ€ Disk 둜 μ«“μ•„λ‚΄λŠ” λ“±μ˜ λ°©λ²•μœΌλ‘œ κ΄€λ¦¬ν•œλ‹€. 또 λ©”λͺ¨λ¦¬κ°€ 꽉 찼을 λ•Œ Disk 둜 μ«“μ•„λ‚Ό μž‘μ—…λ„ μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ”λ°, 보톡 μ•žμœΌλ‘œ CPUλ₯Ό 더이상 μ‚¬μš©ν•˜μ§€ μ•Šμ„ 것 같은 μž‘μ—…μ„ λ‚΄λ €λ†“λŠ”λ‹€. 'μ‚¬μš©ν•˜μ§€ μ•Šμ„ 것 κ°™λ‹€' λŠ” 기쀀도 λ‹€μ–‘ν•˜κ²Œ μžˆλ‹€.

 

Disk 에 νŒŒμΌμ„ μ–΄λ–»κ²Œ 보관할지 파일 관리도 ν•΄μ•Όν•˜κ³  Disk 에 데이터λ₯Ό μ½κ±°λ‚˜ μ“°λΌλŠ” μš”μ²­λ„ μŠ€μΌ€μ€„λ§ ν•΄μ•Ό ν•œλ‹€. 특히 λ””μŠ€ν¬λŠ” Head λΌλŠ” λΆ€λΆ„μ—μ„œ μž…μΆœλ ₯이 μΌμ–΄λ‚˜λŠ”λ°, 이 Head λ₯Ό 효율적으둜 μ›€μ§μ΄κ²Œ 할지도 생각해야 ν•œλ‹€.

 

컴퓨터와 ν†΅μ‹ ν•˜λŠ” I/O device λŠ” 컴퓨터보닀 속도가 맀우 느리기 λ•Œλ¬Έμ— CPU 와 이 속도 차이λ₯Ό μ–΄λ–»κ²Œ λ§žμΆ°κ°€λ©° 정보λ₯Ό 주고받을지 μž…μΆœλ ₯ 관리도 ν•΄μ•Ό ν•œλ‹€.

 

ν•˜λ“œμ›¨μ–΄ 뿐만 μ•„λ‹ˆλΌ ν”„λ‘œμ„ΈμŠ€λ₯Ό 생성, μ‚­μ œν•˜κ³  μž‘μ—… μˆ˜ν–‰μ— ν•„μš”ν•œ μžμ›μ„ ν• λ‹Ή, λ³€ν™˜ν•˜κ³  ν˜Ήμ€ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°„ ν˜‘λ ₯ν•˜λŠ” 것을 κ΄€λ¦¬ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ 관리도 ν•„μš”ν•˜λ‹€.

 

κ·Έ μ™Έλ‘œ λ„€νŠΈμ›Œν‚Ή, λͺ…λ Ήμ–΄ 해석 λ“±μ˜ μž‘μ—… μ²˜λ¦¬λ„ ν•„μš”ν•˜λ‹€.

λ°˜μ‘ν˜•