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

Computer Science/Operating System15

6 ν”„λ‘œμ„ΈμŠ€ μƒνƒœμ™€ 계측 ꡬ쑰 ν”„λ‘œμ„ΈμŠ€ μƒνƒœλŠ” 컴퓨터 μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ΄λ‚˜ μž‘μ—…μ˜ ν˜„μž¬ μƒνƒœλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 일반적으둜 λ‹€μŒκ³Ό 같은 μ—¬λŸ¬ κ°€μ§€ μƒνƒœλ‘œ λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€. 생성(New): ν”„λ‘œμ„ΈμŠ€κ°€ μƒμ„±λ˜κ³  아직 μŠ€μΌ€μ€„λ§λ˜μ§€ μ•Šμ€ μƒνƒœμž…λ‹ˆλ‹€. μ€€λΉ„(Ready): ν”„λ‘œμ„ΈμŠ€κ°€ CPUλ₯Ό ν• λ‹Ήλ°›κΈ°λ₯Ό κΈ°λ‹€λ¦¬λŠ” μƒνƒœμž…λ‹ˆλ‹€. 이 μƒνƒœμ—μ„œλŠ” λͺ¨λ“  ν•„μš”ν•œ μžμ›μ„ ν• λ‹Ήλ°›μ•„ 싀행을 μ‹œμž‘ν•  수 μžˆλŠ” μƒνƒœμž…λ‹ˆλ‹€. μ‹€ν–‰(Running): CPUλ₯Ό ν• λ‹Ήλ°›μ•„ μ‹€μ œλ‘œ μ½”λ“œκ°€ μ‹€ν–‰λ˜κ³  μžˆλŠ” μƒνƒœμž…λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€κ°€ 이 μƒνƒœμ— μžˆλ‹€λŠ” 것은 ν˜„μž¬ CPUλ₯Ό μ‚¬μš©ν•˜κ³  μžˆλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. λŒ€κΈ°(Waiting λ˜λŠ” Blocked): ν”„λ‘œμ„ΈμŠ€κ°€ μ–΄λ–€ μ΄λ²€νŠΈκ°€ λ°œμƒν•˜κΈ°λ₯Ό κΈ°λ‹€λ¦¬λŠ” μƒνƒœμž…λ‹ˆλ‹€. μ΄λ²€νŠΈκ°€ λ°œμƒν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€λŠ” λ‹€μ‹œ μ€€λΉ„ μƒνƒœλ‘œ μ „ν™˜λ©λ‹ˆλ‹€. μ’…λ£Œ(Terminate.. 2023. 12. 28.
5 User Space in Process (ν”„λ‘œμ„ΈμŠ€ μ‚¬μš©μž μ˜μ—­) λ©”λͺ¨λ¦¬ κ΄€λ¦¬μ˜ κΈ°λ³Έ κ°œλ… 쀑 ν•˜λ‚˜λŠ” μ‚¬μš©μž μ˜μ—­(User Space)κ³Ό 컀널 μ˜μ—­(Kernel Space) μ‚¬μ΄μ˜ κ΅¬λΆ„μž…λ‹ˆλ‹€. 컀널 μ˜μ—­ (Kernel Space): 운영체제 컀널이 λ™μž‘ν•˜λŠ” μ˜μ—­μž…λ‹ˆλ‹€. 이 뢀뢄은 μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€ 및 운영체제의 핡심 κΈ°λŠ₯을 μ§€μ›ν•˜λŠ” 데이터 및 μ½”λ“œλ‘œ μ±„μ›Œμ Έ μžˆμŠ΅λ‹ˆλ‹€. 컀널 μ˜μ—­μ€ 일반적으둜 μ‹œμŠ€ν…œ 레벨의 κΆŒν•œμ΄ ν•„μš”ν•œ μž‘μ—…λ“€μ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€. μ‚¬μš©μž λͺ¨λ“œ (User Space): μ‚¬μš©μž μ˜μ—­μ€ μ‚¬μš©μž μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜κ³  λ™μž‘ν•˜λŠ” κ³΅κ°„μž…λ‹ˆλ‹€. μ—¬κΈ°μ—λŠ” ν…μŠ€νŠΈ νŽΈμ§‘κΈ°, μ›Ή λΈŒλΌμš°μ €, κ²Œμž„κ³Ό 같은 μ‘μš© ν”„λ‘œκ·Έλž¨λ“€μ΄ μ‚¬μš©ν•˜λŠ” λ©”λͺ¨λ¦¬κ°€ ν¬ν•¨λ©λ‹ˆλ‹€. 이 κ³΅κ°„μ—μ„œ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€μ— μ œν•œλœ 접근을 κ°–κ²Œ λ˜μ–΄ 격리와 λ³΄μ•ˆ μˆ˜μ€€μ΄ μœ μ§€λ©λ‹ˆλ‹€. μ‚¬μš©μž μ˜μ—­μ—λŠ” λ‹€μ–‘ν•œ μ˜μ—­λ“€μ΄.. 2023. 12. 23.
4 Process Outline (+Kernel Space) ν”„λ‘œμ„ΈμŠ€λŠ” 컴퓨터 κ³Όν•™μ—μ„œ μ€‘μš”ν•œ κ°œλ…μœΌλ‘œ, μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€λŠ” 운영 μ²΄μ œμ—μ„œ κ΄€λ¦¬λ˜λ©°, 각각 λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰λ˜λŠ” ν”„λ‘œκ·Έλž¨μ˜ μΈμŠ€ν„΄μŠ€λΌκ³  생각할 수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μ–‘ν•œ 운영 μ²΄μ œμ—μ„œλŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό 생성, 관리, μŠ€μΌ€μ€„λ§ν•˜κ³  μžμ›μ„ ν• λ‹Ήν•˜λŠ”λ° μ‚¬μš©λ˜λŠ” μ—¬λŸ¬ λ©”μ»€λ‹ˆμ¦˜μ΄ μžˆμŠ΅λ‹ˆλ‹€. ν¬κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€ (Foreground Process) ν¬κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€λŠ” ν˜„μž¬ μ‚¬μš©μžμ™€ 직접 μƒν˜Έ μž‘μš©ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. μ‚¬μš©μžκ°€ μ‹€ν–‰ν•œ ν”„λ‘œκ·Έλž¨μ΄λ‚˜ λͺ…령이 ν¬κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰λ˜λ©΄ ν•΄λ‹Ή μž‘μ—…μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ μ œμ–΄λ₯Ό 계속 μœ μ§€ν•˜λ©°, μ‚¬μš©μžλŠ” κ·Έ μ§„ν–‰ 상황을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 주둜 터미널 μ°½μ—μ„œ μ‹€ν–‰λœ ν”„λ‘œμ„ΈμŠ€κ°€ ν¬κ·ΈλΌμš΄λ“œμ—μ„œ λ™μž‘ν•©λ‹ˆλ‹€. λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€ (Background Process) λ°±κ·Έ.. 2023. 12. 23.
3 Dual Mode (User & Kernel mode) + System Call μš΄μ˜μ²΄μ œμ—μ„œλŠ” 주둜 μ‚¬μš©μž λͺ¨λ“œ(User Mode)와 컀널 λͺ¨λ“œ(Kernel Mode)λΌλŠ” 두 κ°€μ§€ μ‹€ν–‰ λͺ¨λ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 이λ₯Ό 이쀑 λͺ¨λ“œ(Dual Mode)라고도 ν•©λ‹ˆλ‹€. 즉, 이쀑 λͺ¨λ“œλž€ CPUκ°€ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λŠ” λͺ¨λ“œλ₯Ό 크게 μ‚¬μš©μž λͺ¨λ“œμ™€ 컀널λͺ¨λ“œλ‘œ κ΅¬λΆ„ν•˜λŠ” 방식을 μ˜λ―Έν•©λ‹ˆλ‹€. μ™œ 두 κ°€μ§€ λͺ¨λ“œκ°€ μžˆμ„κΉŒμš”? 일반적으둜 λ‹€μ–‘ν•œ μ‘μš© ν”„λ‘œκ·Έλž¨λ“€μ΄ ν•˜λ“œμ›¨μ–΄μ— λ¬΄μ°¨λ³„μ μœΌλ‘œ μ ‘κ·Όν•˜λ©΄ μœ„ν—˜ν•  수 있기 λ•Œλ¬Έμ— μš΄μ˜μ²΄μ œλŠ” 이λ₯Ό 이쀑 λͺ¨λ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ ν•΄κ²°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ‚¬μš©μž λͺ¨λ“œ (User Mode) μ‚¬μš©μž λͺ¨λ“œλŠ” 운영체제 μ„œλΉ„μŠ€μ˜ 제곡 없이 μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜λŠ” ν™˜κ²½μž…λ‹ˆλ‹€. μ‘μš© ν”„λ‘œκ·Έλž¨μ€ μ‚¬μš©μž λͺ¨λ“œμ—μ„œ μ‹€ν–‰λ˜λ©°, μ œν•œλœ μžμ›κ³Ό κΆŒν•œμ— μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ‚¬μš©μž λͺ¨λ“œμ—μ„œλŠ” μ§μ ‘μ μœΌλ‘œ μ‹œμŠ€ν…œ μžμ›μ— μ ‘κ·Ό.. 2023. 12. 21.
2 컀널 (Kernel) 컀널은 운영체제의 핡심이며, ν•˜λ“œμ›¨μ–΄μ™€ μ†Œν”„νŠΈμ›¨μ–΄ κ°„μ˜ μƒν˜Έ μž‘μš©μ„ κ΄€λ¦¬ν•˜κ³  μ œμ–΄ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. λ‹€μ–‘ν•œ μš΄μ˜μ²΄μ œλ“€μ΄ λ‹€μ–‘ν•œ 컀널을 μ‚¬μš©ν•˜λ©°, 각각의 컀널은 νŠΉμ • μš΄μ˜μ²΄μ œμ— μ΅œμ ν™”λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μœ„μ˜ κ·Έλ¦Όκ³Ό 같이 μš΄μ˜μ²΄μ œλŠ” ν”„λ‘œμ„ΈμŠ€(μ‘μš© ν”„λ‘œκ·Έλž¨)듀이 μžμ›μ— μ ‘κ·Όν•˜λ € ν•  λ•Œ 였직 μžμ‹ (컀널)λ§Œμ„ ν†΅ν•΄μ„œ μ ‘κ·Όν•˜λ„λ‘ ν•©λ‹ˆλ‹€. μ»€λ„μ˜ νŠΉμ§• 1) ν”„λ‘œμ„ΈμŠ€ 관리: 컀널은 ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜κ³  μŠ€μΌ€μ€„λ§ν•˜μ—¬ 각각의 ν”„λ‘œμ„ΈμŠ€μ— CPU μ‹œκ°„μ„ ν• λ‹Ήν•©λ‹ˆλ‹€. λ˜ν•œ ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ 톡신과 동기화λ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€. 2) λ©”λͺ¨λ¦¬ 관리: 컀널은 μ‹œμŠ€ν…œμ˜ λ©”λͺ¨λ¦¬λ₯Ό 효과적으둜 κ΄€λ¦¬ν•˜λ©°, ν”„λ‘œμ„ΈμŠ€μ— ν•„μš”ν•œ λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•˜κ³  νšŒμˆ˜ν•©λ‹ˆλ‹€. λ˜ν•œ 가상 λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•˜μ—¬ 물리적 λ©”λͺ¨λ¦¬μ˜ ν•œκ³„λ₯Ό κ·Ήλ³΅ν•©λ‹ˆλ‹€. 3) 파일 μ‹œμŠ€ν…œ 관리: 컀널은 파일 및.. 2023. 12. 21.
1 Operating System - 운영체제 운영체제(Operating System, μ΄ν•˜ OS)λŠ” 컴퓨터 μ‹œμŠ€ν…œμ—μ„œ 핡심적인 μ†Œν”„νŠΈμ›¨μ–΄λ‘œ, ν•˜λ“œμ›¨μ–΄μ™€ μ‘μš© μ†Œν”„νŠΈμ›¨μ–΄ κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜λ©° μ‹œμŠ€ν…œ μžμ›μ„ κ΄€λ¦¬ν•˜κ³  μ‘°μ ˆν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. μ΄λŠ” μ‚¬μš©μž 및 μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ 컴퓨터 μžμ›μ„ 효과적으둜 ν™œμš©ν•  수 있게 ν•΄μ£ΌλŠ” 핡심적인 μ‹œμŠ€ν…œ μ†Œν”„νŠΈμ›¨μ–΄μž…λ‹ˆλ‹€. μ»΄ν“¨ν„°μ˜ μš΄μ˜μ²΄μ œλŠ” ν˜„μ‹€μ—μ„œ 정뢀와 같은 역할이라고 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. μ •λΆ€λŠ” λ‚˜λΌμ˜ μžμ›κ³Ό μ˜ˆμ‚°μ„ μ–΄λ–»κ²Œ 효율적으둜 관리할 것인가λ₯Ό κ³ λ―Όν•©λ‹ˆλ‹€. 운영체제 μ—­μ‹œ 컴퓨터에 ν• λ‹Ήλœ μžμ›μ„ μ–΄λ–»κ²Œ 효율적으둜 μ‚¬μš©ν•  것인가에 λŒ€ν•œ 일을 ν•œλ‹€κ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 운영체제의 μ£Όμš” μ—­ν• : 1. ν”„λ‘œμ„ΈμŠ€ 관리 - ν”„λ‘œμ„ΈμŠ€ μŠ€μΌ€μ€„λ§: μ—¬λŸ¬ μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ λ™μ‹œμ— 싀행될 λ•Œ, μ–΄λ–€ ν”„λ‘œμ„ΈμŠ€κ°€ μ–Έμ œ 싀행될지λ₯Ό κ²°μ •ν•©λ‹ˆ.. 2023. 12. 20.