λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
CS/운영체제

2. 운영체제의 λ°œμ „

by 🐳 Laboon 2024. 4. 21.
μš΄μ˜μ²΄μ œκ°€ λ°œμ „ν•œ κ³Όμ •

 

μš΄μ˜μ²΄μ œλŠ” 크게 κ³ μ • ν”„λ‘œκ·Έλž˜λ° 방식, λ‚΄μž₯ ν”„λ‘œκ·Έλž˜λ° 방식, λ‘œλ” ν”„λ‘œκ·Έλž¨, μ›μ‹œ 운영체제, 졜초의 운영체제(배치 운영체제), 닀쀑 ν”„λ‘œκ·Έλž˜λ° 운영체제, μ‹œλΆ„ν•  λ‹€μ€‘ν”„λ‘œκ·Έλž˜λ°, 개인용 운영체제둜 λ‚˜λ‰œλ‹€.

 

κ·Έ μ™Έ, μž„λ² λ””λ“œ 운영체제, λͺ¨λ°”일 운영체제, μ‹€μ‹œκ°„ 운영체제, μ„œλ²„ 운영체제 등이 μžˆλ‹€.

 

κ³ μ • ν”„λ‘œκ·Έλž˜λ° 방식 (fixed program computer)

 

1940λ…„λŒ€ μ»΄ν“¨ν„°λ‘œ OS에 λŒ€ν•œ κ°œλ…μ΄ 없을 λ•Œμ΄λ‹€.

이 λ•ŒλŠ” HW만 μ‘΄μž¬ν–ˆκ³  ν‚€λ³΄λ“œλ‘œ λͺ…령을 ν•˜λŠ” κ°œλ…μ΄ 없을 λ•Œμ΄λ‹€.

 

그럼 μ–΄λ–»κ²Œ ν”„λ‘œκ·Έλž˜λ°μ„ ν–ˆμ„κΉŒ?

쒅이에 μŠ€μœ„μΉ˜μ™€ μ „μ„  연결도λ₯Ό μž‘μ„±ν•˜λ©° λ°°μ„ νŒμ— 전선을 μ—°κ²°ν•˜λŠ” 방식을 μ‚¬μš©ν–ˆλ‹€.

ν•˜λ‚˜μ˜ 계산을 μœ„ν•΄ ν•œ 번의 μž…λ ₯(μ „μ„  μ—°κ²°)이 였래 걸리고 연산에도 였래 κ±Έλ €μ„œ κ³ μ • ν”„λ‘œκ·Έλž˜λ° 방식이라고 ν•œλ‹€.

 

λŒ€ν‘œμ μΈ 예둜, AI의 μ‹œμ΄ˆμΈ μ•¨λŸ° νŠœλ‹μ˜ Colossus, 졜초의 μ „μžμ‹ 컴퓨터 ENIAC이 μ‘΄μž¬ν•œλ‹€.

ColosussλŠ” μ˜ν™” 'μ΄λ―Έν…Œμ΄μ…˜ κ²Œμž„'μ—μ„œ μ‹€ν™”λ₯Ό λ°”νƒ•μœΌλ‘œ μ œμž‘ν•œ ꡉμž₯히 유λͺ…ν•œ 녀석이닀.

 

λ‚΄μž₯ ν”„λ‘œκ·Έλž˜λ° 방식 (sotred program)

 

1945λ…„ μ»΄ν“¨ν„°μ˜ 아버지 폰 λ…Έμ΄λ§Œμ— μ˜ν•΄ μ œμ•ˆλœ 방식이닀.

ν˜„μž¬ μ»΄ν“¨ν„°μ˜ 핡심적인 κ°œλ…μ„ μ‚¬μš©ν•˜κ³  μžˆλŠ” 방식인데 1951λ…„ EDVACμ΄λΌλŠ” 컴퓨터λ₯Ό λ§Œλ“€ λ•Œ μ‚¬μš©λœ 방식이닀.

λ‚΄μž₯ ν”„λ‘œκ·Έλž˜λ°μ΄λž€ CPU와 λ©”λͺ¨λ¦¬λ₯Ό λΆ„λ¦¬ν•˜κ³  μ†Œν”„νŠΈμ›¨μ–΄μ™€ ν•˜λ“œμ›¨μ–΄λ₯Ό λΆ„λ¦¬ν•˜μ—¬, μ‹€ν–‰ν•  ν”„λ‘œκ·Έλž¨μ„ λ©”λͺ¨λ¦¬μ— λ‹΄κ³  CPUκ°€ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λŠ” 방식이닀. 이 λ•Œ, μž…μΆœλ ₯ μž₯치λ₯Ό 톡해 λ©”λͺ¨λ¦¬μ— μ μž¬ν•˜κ²Œ λ˜λŠ”λ° μš°λ¦¬κ°€ μ•„λŠ” μž…μΆœλ ₯ μž₯μΉ˜μ™€ μœ μ‚¬ν•˜λ‹€. μžνŒκΈ°μ™€ 같은 μž₯치둜 νŽ€μΉ˜μΉ΄λ“œμ— ꡬ멍을 뚫게 되고 μΉ΄λ“œλ¦¬λ”κΈ°λ‘œ νŽ€μΉ˜ μΉ΄λ“œλ₯Ό μ½μœΌλ©΄μ„œ ν”„λ‘œκ·Έλž¨μ„ λ©”λͺ¨λ¦¬μ— μ μž¬ν•˜κ²Œ λœλ‹€. 

폰 λ…Έμ΄λ§Œμ΄ μ œμ•ˆν•œ λ‚΄μž₯ ν”„λ‘œκ·Έλž¨ 컴퓨터 ꡬ쑰

 

λ‘œλ” ν”„λ‘œκ·Έλž¨

 

1950λ…„λŒ€λ‘œ 운영체제의 κ°œλ…μ΄ μ‹œμž‘λœ μ‹œκΈ°λΌκ³  λ³Ό 수 μžˆλ‹€.

아직도 유λͺ…ν•œ IBM νšŒμ‚¬μ—μ„œ λ§Œλ“  첫 번째 λ‚΄μž₯ ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μ˜ 컴퓨터가 λŒ€ν‘œμ μΈ μ˜ˆμ΄λ‹€.

 

IBM μ»΄ν“¨ν„°λŠ” λ²”μš© μ»΄ν“¨ν„°λ‘œ ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ΄ λŒ€κΈ°ν•΄μ„œ μ‚¬μš©ν•œλ‹€.

IBM 컴퓨터λ₯Ό μ‚¬μš©ν•˜λŠ” 방법은 μ•„λž˜μ™€ κ°™λ‹€.

1. ν”„λ‘œκ·Έλž˜λ° λ‚΄μš©μ„ 쒅이에 μž‘μ„±ν•œλ‹€.

2. μž‘μ„±λœ ν”„λ‘œκ·Έλž˜λ° λ‚΄μš©μ„ μΉ΄λ“œ 천곡기λ₯Ό 톡해 μž‘μ„±ν•œλ‹€ - κΈ°κ³„μ–΄λ‘œ νŽ€μΉ­λœ νŽ€μΉ˜ μΉ΄λ“œ 생성

3. μΉ΄λ“œ 리더기λ₯Ό 톡해 νŽ€μΉ˜ ν”„λ‘œκ·Έλž¨λ“€μ„ μ½λŠ”λ‹€. - IBM μ»΄ν“¨ν„°μ˜ LoadButton

4. μž…λ ₯된 ν”„λ‘œκ·Έλž¨μ€ λ©”λͺ¨λ¦¬μ˜ 0λ²ˆμ§€λΆ€ν„° μ μž¬λ˜λ©΄μ„œ μ‹€ν–‰ν•œλ‹€.

 

κ·Έ 외에도 μŠ€μœ„μΉ˜μ— μ΄μ§„μˆ˜ λͺ…령을 μŠ€μœ„μΉ˜μ— μ„€μ •ν•˜κ³  CPU λ ˆμ§€μŠ€ν„° λ˜λŠ” λ©”λͺ¨λ¦¬μ— μˆ˜λ™μœΌλ‘œ μ €μž₯ ν›„ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰μ‹œν‚€λŠ” 방법도 μžˆλ‹€. 보톡, 첫번째 μΉ΄λ“œλŠ” 두 번째 μΉ΄λ“œμ— μž‘μ„±λœ ν”„λ‘œκ·Έλž¨μ„ λ©”λͺ¨λ¦¬μ— λ‘œλ“œν•˜λŠ” μ½”λ“œλ§Œ μž‘μ„±ν•˜κ³  λ‘λ²ˆμ§Έ μΉ΄λ“œλŠ” μ‹€μ œ μˆ˜ν–‰ν•˜λŠ” λͺ©μ  ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜κ²Œ λœλ‹€. μ˜€λŠ˜λ‚  μ»΄ν“¨ν„°μ˜ λ™μž‘κ³Ό λ™μΌν•˜λ‹€.

 

μ›μ‹œ 운영체제

 

1955λ…„ GM(General Mortors)에 μ˜ν•΄ 개발 된 GM OSκ°€ μ‘΄μž¬ν•œλ‹€.

GM은 μžλ™μ°¨ 제쑰 κΈ°μ—…μœΌλ‘œ IBM701의 κ³ κ°μ΄μ—ˆλŠ”λ° νŽ€μΉ˜ μΉ΄λ“œμ— λ‹΄κΈ΄ ν”„λ‘œκ·Έλž¨μ„ λ©”λͺ¨λ¦¬μ— λ‘œλ”©ν•˜λŠ” λ‘œλ” ν”„λ‘œκ·Έλž¨μ„ ν…Œμ΄ν”„μ— μ €μž₯ν•΄μ„œ ν•„μš”ν•  λ•Œλ§ˆλ‹€ μ‹€ν–‰ν•˜λŠ” λ‘œλ” ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜κ²Œ λœλ‹€.

μ‚¬μš©μžμ˜ ν”„λ‘œκ·Έλž¨μ„ 읽어 μ‹€ν–‰μ‹œμΌœμ€€λ‹€λŠ” μ˜λ―Έμ—μ„œ μ›μ‹œμ μΈ 운영체제라고 ν•œλ‹€.

 

IBM 701μ—μ„œ 첫 번째 μΉ΄λ“œ λŒ€μ‹  자기 ν…Œμ΄ν”„ μž₯치λ₯Ό λ©”λͺ¨λ¦¬μ— μ μž¬ν•˜λ©΄μ„œ 같은 μž‘μ—…μ— λŒ€ν•΄ μ—¬λŸ¬λ²ˆ μΉ΄λ“œλ₯Ό μž‘μ„±ν•΄μ•Όν•˜λŠ” 반볡적인 μž‘μ—…μ„ ν”Όν•  수 있게 λ˜μ—ˆλ‹€.

 

졜초의 운영체제, 배치 처리

 

GM νšŒμ‚¬μ—μ„œ IBM 701의 처리 속도 문제 λŒ€λ¬Έμ— IBM 704λ₯Ό μ£Όλ¬Έν•˜κ²Œ λ˜λŠ”λ° μ—¬μ „νžˆ λ¬Έμ œμ μ„ λ°œκ²¬ν•œλ‹€.

1. κ°œλ°œμžλ“€μ΄ λŒ€κΈ°ν•΄μ•Όν•œλ‹€.

2. μ»΄ν“¨ν„°μ˜ idle time이 λ§Žλ‹€. (ν”„λ‘œκ·Έλž¨ ν•˜λ‚˜κ°€ 처리되고 λ‚˜λ©΄ λ‹€μŒ κ°œλ°œμžκ°€ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λŠ” λ™μ•ˆ λ†€κ²Œ 됨)

3. μž…μΆœλ ₯ μž₯치λ₯Ό μ œμ–΄ν•˜λŠ” μ½”λ“œ, ν•˜λ“œμ›¨μ–΄ μ„œλΉ„μŠ€ 루틴은 κ°œλ°œμžκ°€ λ³„λ„λ‘œ μž‘μ„±ν•΄μ•Όν•œλ‹€.

 

μœ„μ™€ 같은 문제점으둜 GMκ³Ό NAAμ—μ„œ IBM704에 λŒ€ν•΄ I/O 합동 κ°œλ°œμ„ μ§„ν–‰ν•œλ‹€.

GMκ³Ό NAAμ—μ„œ 합동 κ°œλ°œν•œ GM-NAA-IOλ₯Ό 졜초의 운영체제라고 ν•˜λŠ”λ° κ·Έ μ΄μœ λŠ” μ•„λž˜μ™€ κ°™λ‹€.

1. μ—¬λŸ¬ κ°œλ°œμžκ°€ μž‘μ„±ν•œ μž‘μ—…λ“€μ„ ν•˜λ‚˜μ”© μžλ™μœΌλ‘œ λ©”λͺ¨λ¦¬μ— λ‘œλ”©ν•˜κ³  ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ„λ‘ ν•˜λŠ” 배치 방식(batch operating system)으둜 μž‘λ™ν•œλ‹€.

2. μ‚¬μš©μžμ˜ μž…μΆœλ ₯을 λ‹€λ£¨λŠ” I/O μ½”λ“œ ν”„λ‘œκ·Έλž¨μ€ 항상 λ©”λͺ¨λ¦¬μ— μƒμ£Όν•˜κ³  μžˆλ‹€.

3. λͺ¨λ“  μž…μΆœλ ₯ μž₯치λ₯Ό μ œμ–΄ν•˜λŠ” 루틴듀을 라이브러리 ν˜•μ‹μœΌλ‘œ κ°–μΆ”κ³  κ³΅μœ λœλ‹€.

 

GM-NAA I/O OS의 κ΅¬μ‘°λŠ” [μ–΄μ…ˆλΈ”λŸ¬ μ½”λ“œ, λ‘œλ” ν”„λ‘œκ·Έλž¨, 곡톡 μž…μΆœλ ₯ μ½”λ“œ 및 메인 μ½”λ“œ]둜 κ΅¬μ„±λ˜μ–΄μžˆλ‹€. μ˜€λŠ˜λ‚ μ˜ 컀널과 μœ μ‚¬ν•˜λ‹€. μ•„λž˜λŠ” GM-NAA I/O OSλ₯Ό νƒ‘μž¬ν•œ IBM 704의 μ‹€ν–‰ 과정이닀.

 

1. κ°œλ°œμžλ“€μ΄ 각 각 μ–΄μ…ˆλΈ”λŸ¬λ‘œ μž‘μ„±λ„λ‹ˆ νŽ€μΉ˜ μΉ΄λ“œλ₯Ό μΉ΄λ“œ 리더기에 μ‚½μž…ν•œλ‹€.

2. μ‚½μž…λœ μΉ΄λ“œ μž…λ ₯ μž₯μΉ˜λŠ” 자기 ν…Œμ΄ν”„μ—μ„œ 미리 읽어 λ†“λŠ”λ‹€.

3. μž…μΆœλ ₯ 메인 μ½”λ“œκ°€ μ‹€ν–‰λ˜λ©΄ μ‚¬μš©μž ν”„λ‘œκ·Έλž¨μ„ 읽고 μ–΄μ…ˆλΈ”λŸ¬ μ½”λ“œμ—μ„œ 기계어 λͺ©μ  μ½”λ“œλ‘œ λ²ˆμ—­ν•œλ‹€.

4. 기계어 λͺ©μ  μ½”λ“œλŠ” λ‘œλ” ν”„λ‘œκ·Έλž¨μ— μ˜ν•΄ λ©”λͺ¨λ¦¬μ— μ μž¬λœλ‹€.

5. CPUλŠ” λ©”λͺ¨λ¦¬μ— 적재된 λͺ©μ  ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜κ³  μž…μΆœλ ₯ μ½”λ“œλ₯Ό μ‹€ν–‰ν•œλ‹€.