πŸ“ Computer Science/✏ OS

    운영체제 정리

    운영체제 정리 1. 컴퓨터 μ‹œμŠ€ν…œμ˜ ꡬ성 2020.04.23 - [πŸ“ Computer Science/✏ OS] - 컴퓨터 μ‹œμŠ€ν…œμ˜ ꡬ성 컴퓨터 μ‹œμŠ€ν…œμ˜ ꡬ성 컴퓨터 μ‹œμŠ€ν…œμ€ 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” 물리적 기계 μž₯치인 ν•˜λ“œμ›¨μ–΄μ™€ νŠΉλ³„ν•œ μž‘μ—…μ„ μ§€μ‹œν•˜λ €κ³  λͺ…λ Ήμ–΄λ‘œ μž‘μ„±ν•œ ν”„λ‘œκ·Έλž¨μΈ μ†Œν”„νŠΈμ›¨μ–΄λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€. ν•˜λ“œμ›¨μ–΄ ν”„λ‘œμ„Έμ„œ, λ©”λͺ¨ tech-interview.tistory.com 마우슀둜 ν”„λ‘œκ·Έλž¨μ„ ν΄λ¦­ν–ˆμ„ λ•Œ μ»΄ν“¨ν„°μ—μ„œ μΌμ–΄λ‚˜λŠ” λͺ¨λ“  일에 κ΄€ν•΄μ„œ μ„€λͺ… ν‚€λ³΄λ“œμ—μ„œ μ‚¬μš©μž μž…λ ₯이 λ“€μ–΄μ˜€λ©΄ ν‚€λ³΄λ“œ μ»¨νŠΈλ‘€λŸ¬κ°€ μΈν„°λŸ½νŠΈλ₯Ό λ°œμƒμ‹œμΌœ CPUμ—κ²Œ ν‚€κ°€ μž…λ ₯λ˜μ—ˆλ‹€λŠ” 사싀을 μ•Œλ €μ€€λ‹€. CPUλŠ” ν˜„μž¬ μˆ˜ν–‰ μ€‘μ΄λ˜ μž‘μ—…μ˜ μƒνƒœλ₯Ό μ €μž₯ν•˜κ³  μΈν„°λŸ½νŠΈ μš”μ²­μ„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ OS 내에 μ •μ˜λœ ν‚€λ³΄λ“œ μΈν„°λŸ½νŠΈ 처리 루틴을 μ°Ύμ•„κ°„λ‹€. ν‚€λ³΄λ“œ..

    λ©€ν‹° ν”„λ‘œμ„Έμ‹±, λ©€ν‹° ν”„λ‘œκ·Έλž˜λ°, λ©€ν‹° νƒœμŠ€ν‚Ή

    λ©€ν‹° ν”„λ‘œμ„Έμ‹±, λ©€ν‹° ν”„λ‘œκ·Έλž˜λ°, λ©€ν‹° νƒœμŠ€ν‚Ή

    CPU μ½”μ–΄μ˜ κ΄€μ μ—μ„œ μƒκ°ν•˜μ—¬ λΆ„λ₯˜ν•œλ‹€. 1. λ©€ν‹° ν”„λ‘œμ„Έμ‹±(Multi-processing) CPU μ½”μ–΄ μ—¬λŸ¬ 개둜 μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€λ₯Ό μˆ˜ν–‰ν•˜λŠ” 것 λ©€ν‹° μ“°λ ˆλ”©(Multi-threading): ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€ 내에 μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œκ°€ μ‘΄μž¬ν•˜μ—¬ λ³‘λ ¬μ μœΌλ‘œ μ²˜λ¦¬ν•˜λŠ” 것 2. λ©€ν‹° ν”„λ‘œκ·Έλž˜λ°(Multi-programming) CPU μ½”μ–΄ ν•˜λ‚˜λ‘œ μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€λ₯Ό μˆ˜ν–‰ν•˜λŠ” κ²ƒμœΌλ‘œ ν”„λ‘œμ„Έμ„œ μžμ›μ΄ λ‚­λΉ„λ˜λŠ” 것을 μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•¨μ΄λ‹€. 3. λ©€ν‹° νƒœμŠ€ν‚Ή(Multi-tasking) λ‹€μˆ˜μ˜ Taskλ₯Ό 운영체제 μŠ€μΌ€μ€„λ§μ— μ˜ν•΄ λ²ˆκ°ˆμ•„ κ°€λ©΄μ„œ μˆ˜ν–‰ν•˜λŠ” κ²ƒμœΌλ‘œ μ΄λ•Œ TaskλŠ” ν”„λ‘œμ„ΈμŠ€λ³΄λ‹€ ν™•μž₯된 κ°œλ…μ΄λ‹€. ν”„λ‘œμ„Έμ„œκ°€ 각각의 Taskλ₯Ό 자주 λ²ˆκ°ˆμ•„κ°€λ©΄μ„œ μ²˜λ¦¬ν•˜λŠ”λ° μ‚¬μš©μžμ—κ²ŒλŠ” 마치 λ™μ‹œμ— μ—¬λŸ¬ Taskκ°€ μˆ˜ν–‰λ˜λŠ” κ²ƒμ²˜λŸΌ..

    μΊμ‹œ λ©”λͺ¨λ¦¬(Cache Memory)

    μΊμ‹œ λ©”λͺ¨λ¦¬ μ£ΌκΈ°μ–΅μž₯μΉ˜μ— μ €μž₯된 λ‚΄μš©μ˜ 일뢀λ₯Ό μž„μ‹œλ‘œ μ €μž₯ν•΄λ‘λŠ” κΈ°μ–΅μž₯치둜 속도가 λΉ λ₯Έ μž₯μΉ˜μ™€ 느린 μž₯치 κ°„μ˜ 속도차에 λ”°λ₯Έ 병λͺ© ν˜„μƒμ„ 쀄이기 μœ„ν•œ λ²”μš© λ©”λͺ¨λ¦¬μ΄λ‹€. 1. 지역성(Locality) ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λ˜λŠ” λ™μ•ˆ μ£ΌκΈ°μ–΅μž₯치λ₯Ό μ°Έμ‘°ν•  λ•Œ 일뢀 νŽ˜μ΄μ§€λ§Œ μ§‘μ€‘μ μœΌλ‘œ μ°Έμ‘°ν•˜λŠ” μ„±μ§ˆλ‘œ μΊμ‹œμ˜ 적쀑λ₯ (Hit rate)을 κ·ΉλŒ€ν™”μ‹œν‚€κΈ° μœ„ν•΄ μ§€μ—­μ„±μ˜ 원리λ₯Ό μ‚¬μš©ν•œλ‹€. μ‹œκ°„ 지역성: μ΅œκ·Όμ— 참쑰된 μ£Όμ†Œμ˜ λ‚΄μš©μ€ 곧 λ‹€μŒμ— λ‹€μ‹œ μ°Έμ‘°λ˜λŠ” νŠΉμ„± 곡간 지역성: λŒ€λΆ€λΆ„μ˜ μ‹€μ œ ν”„λ‘œκ·Έλž¨μ΄ 참쑰된 μΈμ ‘ν•œ μ£Όμ†Œμ˜ λ‚΄μš©μ΄ λ‹€μ‹œ μ°Έμ‘°λ˜λŠ” νŠΉμ„± 2. 캐싱 라인(Caching line) μΊμ‹œμ— 데이터λ₯Ό μ €μž₯ν•  λ•Œ, λ°μ΄ν„°μ˜ λ©”λͺ¨λ¦¬ μ£Όμ†Œ 등을 기둝해 λ‘” νƒœκ·Έλ₯Ό 달아 κΈ°λ‘ν•œλ‹€. μ΄λ•Œ μ΄λŸ¬ν•œ νƒœκ·Έλ“€μ˜ λ¬ΆμŒμ„ 캐싱 라인이라 ν•œλ‹€. 캐싱..

    λ©”λͺ¨λ¦¬(κΈ°μ–΅μž₯치) 관리

    1. λ©”λͺ¨λ¦¬ 관리 μ „λž΅ ν”„λ‘œκ·Έλž¨μ΄λ‚˜ 데이터λ₯Ό μ£ΌκΈ°μ–΅μž₯μΉ˜μ— μ μž¬μ‹œν‚€λŠ” μ‹œκΈ°, 적재 μœ„μΉ˜ 등을 μ§€μ •ν•˜μ—¬ ν•œμ •λœ μ£ΌκΈ°μ–΅μž₯치의 곡간을 효율적으둜 μ‚¬μš©ν•˜κΈ° μœ„ν•œ 것이닀. 1) λ°˜μž…(Fetch) μ „λž΅ 보쑰기얡μž₯μΉ˜μ— 보관 쀑인 ν”„λ‘œκ·Έλž¨μ΄λ‚˜ 데이터λ₯Ό μ–Έμ œ μ£ΌκΈ°μ–΅μž₯치둜 μ μž¬ν•  것인지 μš”κ΅¬(Demand) λ°˜μž…: μ°Έμ‘°λ₯Ό μš”κ΅¬ν•  λ•Œ 적재 μ˜ˆμƒ(Anticipatory) λ°˜μž…: 미리 μ˜ˆμƒν•˜μ—¬ 적재 2) 배치(Placement) μ „λž΅ μƒˆλ‘œ λ°˜μž…λ˜λŠ” ν”„λ‘œκ·Έλž¨μ΄λ‚˜ 데이터λ₯Ό μ£ΌκΈ°μ–΅μž₯치의 어디에 μœ„μΉ˜μ‹œν‚¬ 것인지 졜초 적합(First Fit): λ©”λͺ¨λ¦¬μ˜ μ²˜μŒλΆ€ν„° κ²€μ‚¬ν•΄μ„œ 크기가 μΆ©λΆ„ν•œ 첫 번째 λ©”λͺ¨λ¦¬μ— ν• λ‹Ή 졜적 적합(Best Fit): λ‹¨νŽΈν™”λ₯Ό κ°€μž₯ μž‘κ²Œ λ‚¨κΈ°λŠ” λ©”λͺ¨λ¦¬μ— ν• λ‹Ή μ΅œμ•… 적합(Worst Fit): λ‹¨νŽΈν™”λ₯Ό κ°€μž₯ 많이 λ‚¨κΈ°λŠ” λ©”..

    κ΅μ°©μƒνƒœ(Deadlock)

    κ΅μ°©μƒνƒœ(Deadlock) λ‘˜ μ΄μƒμ˜ ν”„λ‘œμ„ΈμŠ€κ°€ 곡유 μžμ›μ„ λ¬΄ν•œμ • 기닀리고 있고 곡유 μžμ›μ„ μ‚¬μš© 쀑인 ν”„λ‘œμ„ΈμŠ€λŠ” μ§„μž… λŒ€κΈ° 쀑인 ν”„λ‘œμ„ΈμŠ€κ°€ μ§„ν–‰λΌμ•Όλ§Œ λΉ μ Έλ‚˜μ˜¬ 수 μžˆλŠ” 상황 1. 4가지 쑰건 μƒν˜Έ 배제(Mutual Exclusion): ν•œ λ²ˆμ— ν•œ ν”„λ‘œμ„ΈμŠ€λ§Œ μžμ› μ‚¬μš© μ μœ μ™€ λŒ€κΈ°(Hold & Wait): 곡유 μžμ›μ— λŒ€ν•œ μ ‘κ·Ό κΆŒν•œμ„ κ°–κ³  μžˆλŠ” ν”„λ‘œμ„ΈμŠ€κ°€ λ‹€λ₯Έ μžμ›μ— λŒ€ν•œ μ ‘κ·Ό κΆŒν•œμ„ μš”κ΅¬ 비선점(Non-preemptive): λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ μžμ› μ ‘κ·Ό κΆŒν•œμ„ κ°•μ œλ‘œ 빼앗을 수 μ—†λ‹€. ν™˜ν˜• λŒ€κΈ°(Circular Wait): 두 개 μ΄μƒμ˜ ν”„λ‘œμ„ΈμŠ€κ°€ μžμ› 접근을 κΈ°λ‹€λ¦¬λŠ”λ° κ·Έ 관계에 사이클 쑴재 2. 해결법 예방 기법: 4가지 쑰건 λΆ€μ • νšŒν”Ό 기법: ꡐ착 μƒνƒœ λ°œμƒ μ‹œ ν”Όν•΄λ‚˜κ°€λŠ” 방법 은행원 μ•Œκ³ λ¦¬μ¦˜..

    λ™μ‹œμ„±(Concurrency)κ³Ό 병렬성(Parallelism)

    λ™μ‹œμ„±(Concurrency)κ³Ό 병렬성(Parallelism)

    λ™μ‹œμ„±(Concurrency)κ³Ό 병렬성(Parallelism) 1. λ™μ‹œμ„±(Concurrency) μ‹±κΈ€ μ½”μ–΄μ—μ„œ λ©€ν‹° μŠ€λ ˆλ“œλ₯Ό λ™μž‘μ‹œν‚€κΈ° μœ„ν•œ 방식 λ©€ν‹° νƒœμŠ€ν‚Ήμ„ μœ„ν•΄ μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œκ°€ λ²ˆκ°ˆμ•„κ°€λ©΄μ„œ μ‹€ν–‰λ˜λŠ” μ„±μ§ˆμ„ λ§ν•œλ‹€. 각 μŠ€λ ˆλ“œλ“€μ΄ λ³‘λ ¬μ μœΌλ‘œ μ‹€ν–‰λ˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄μ§€λ§Œ 사싀은 λ²ˆκ°ˆμ•„κ°€λ©΄μ„œ μ‘°κΈˆμ”© μ‹€ν–‰λ˜κ³  μžˆλŠ” 것이닀. 즉 λ™μ‹œμ— μ‹€ν–‰λ˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄λŠ” 것이닀. λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ“€μ„ κ΅¬μ„±ν•œλ‹€. 1λͺ…이 5개의 μž‘μ—…μ„ λΉ λ₯Έ μ‹œκ°„μ— 이것저것 μ‹€ν–‰ν•œλ‹€. λ¬Έλ§₯ κ΅ν™˜μ΄ λ°œμƒν•œλ‹€. 2. 병렬성(Parallelism) λ©€ν‹° μ½”μ–΄μ—μ„œ λ©€ν‹° μŠ€λ ˆλ“œλ₯Ό λ™μž‘μ‹œν‚€λŠ” 방식 ν•œ 개 μ΄μƒμ˜ μŠ€λ ˆλ“œλ₯Ό ν¬ν•¨ν•˜λŠ” 각 코어듀이 λ™μ‹œμ— μ‹€ν–‰λ˜λŠ” μ„±μ§ˆμ„ λ§ν•œλ‹€. λ©€ν‹° μ½”μ–΄μ—μ„œλ„ λ™μ‹œμ„± μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€. 5λͺ…이 5개의 μž‘μ—…μ„ λ™μ‹œ..