λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • μž₯원읡 κΈ°μˆ λΈ”λ‘œκ·Έ

πŸ’» Computer Science/- Operating System18

[운영체제] 12. κ΅μ°©μƒνƒœμ˜ κ°œλ…κ³Ό λ°œμƒ 원인 κ΅μ°©μƒνƒœμ˜ κ°œλ… 닀쀑 ν”„λ‘œκ·Έλž˜λ° μ‹œμŠ€ν…œμ—μ„œ ν”„λ‘œμ„ΈμŠ€κ°€ κ²°μ½” μΌμ–΄λ‚˜μ§€ μ•Šμ„ 사건을 κΈ°λ‹€λ¦¬λŠ” μƒνƒœκ°€ 되면 Deadlock, κ΅μ°©μƒνƒœμ— λΉ μ‘Œλ‹€κ³  ν•œλ‹€. ν”„λ‘œμ„ΈμŠ€ ν•œ 개 이상이 κ΅μ°©μƒνƒœμ— 빠지면 ν”„λ‘œκ·Έλž¨μ΄ μ •μ§€λ˜μ–΄ 더 이상 μž‘μ—… μˆ˜ν–‰μ„ ν•˜μ§€ λͺ»ν•˜κ²Œ 되며, λ‹€λ₯Έ μž‘μ—…μ—λ„ 영ν–₯을 μ£Όκ²Œλ˜μ–΄ λ¬΄ν•œ λŒ€κΈ°λ‚˜ κΈ°μ•„ μƒνƒœλ³΄λ‹€ 더 μ‹¬κ°ν•œ 문제λ₯Ό μΌμœΌν‚¨λ‹€. μœ„μ˜ 그림을 κ°„λž΅ν•˜κ²Œ μƒνƒœλ‘œ λ‚˜νƒ€λ‚΄λ©΄ ν”„λ‘œμ„ΈμŠ€ Aκ°€ μŠ€μΌ€λ„ˆ μ‚¬μš© κΆŒν•œ νšλ“ μŠ€μΌ€λ„ˆλŠ” ν”„λ‘œμ„ΈμŠ€ A μ—κ²Œλ§Œ κΆŒν•œμ„ ν• λ‹Ήν•˜μ˜€κ³  Aκ°€ ν• λ‹Ή ν•΄μ œν•˜κΈ° μ „ κΉŒμ§€λŠ” μŠ€μΌ€λ„ˆ μ‚¬μš© λΆˆκ°€ ν”„λ‘œμ„ΈμŠ€ AλŠ” CDμ—κ²Œ μ‚¬μš© κΆŒν•œ μš”μ²­ CDμ—κ²Œ μ‚¬μš© κΆŒν•œμ„ μš”μ²­ν•˜μ§€λ§Œ CDλŠ” λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ—κ²Œ μ£Όλ„κΆŒμ„ λ„˜κ²Όκ³  λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ CDλ₯Ό ν• λ‹Ή ν•΄μ œν•˜κΈ° μ „ κΉŒμ§€ μ‚¬μš© λΆˆκ°€ ν”„λ‘œμ„ΈμŠ€ Bκ°€ CD μ‚¬μš© κΆŒν•œ νšλ“ c.. 2019. 12. 9.
[운영체제] 11. μƒν˜Έλ°°μ œμ™€ 동기화 μƒν˜Έλ°°μ œμ™€ 동기화 μƒν˜Έλ°°μ œμ˜ κ°œλ… μƒν˜Έλ°°μ œλŠ” 병행 ν”„λ‘œμ„ΈμŠ€μ—μ„œ ν”„λ‘œμ„ΈμŠ€ ν•˜λ‚˜κ°€ κ³΅μœ μžμ›μ„ μ‚¬μš©ν•  λ•Œ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λ“€μ΄ λ™μΌν•œ 일을 μˆ˜ν–‰ν•  수 μ—†λ„λ‘ν•˜λŠ” 방법이닀. 동기화 곡유 μžμ›μ— μžˆλŠ” 데이터에 μ ‘κ·Όν•˜λŠ” λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λ₯Ό ν”„λ‘œμ„ΈμŠ€ ν•˜λ‚˜κ°€ μ ‘κ·Όν•˜μ§€ λͺ»ν•˜κ²Œ 싀행을 μ œμ–΄ν•˜λŠ” 방법 ꡐ착 μƒνƒœ, κΈ°μ•„ μƒνƒœ λ™κΈ°ν™”λ‘œ μƒν˜Έλ°°μ œλŠ” 보μž₯ν•  수 μžˆμœΌλ‚˜ 두 개 μ΄μƒμ˜ μž‘μ—…μ΄ μ„œλ‘œ μƒλŒ€λ°©μ˜ μž‘μ—…μ΄ λλ‚˜κΈ° λ§Œμ„ 기닀리고 있기 λ•Œλ¬Έμ— 결과적으둜 아무것도 μ™„λ£Œλ˜μ§€ λͺ»ν•˜λŠ” μƒνƒœμΈ ꡐ착 μƒνƒœλ₯Ό 보μž₯ν•  μˆ˜λŠ” μ—†λ‹€. μƒν˜Έ 배제의 ꡬ체적 μ˜ˆμ‹œ ν”„λ‘œμ„ΈμŠ€ p1 : ν”„λ‘œμ„ΈμŠ€ 1 ν”„λ‘œμ„ΈμŠ€ p2 : ν”„λ‘œμ„ΈμŠ€ 2 μž„κ³„ μžμ› : 두 ν”„λ‘œμ„ΈμŠ€κ°€ λ™μ‹œμ— μ‚¬μš©ν•  수 μ—†λŠ” μžμ› μž„κ²Œ μ˜μ—­ : μž„κ³„ μžμ›μ— μ ‘κ·Όν•˜κ³  μ‹€ν–‰ν•˜λŠ” ν”„λ‘œκ·Έλž¨ μ½”λ“œ λΆ€λΆ„ p1이 μž„κ³„ μ˜μ—­.. 2019. 12. 9.
[운영체제] 10. 병행 ν”„λ‘œμ„ΈμŠ€ 병행 ν”„λ‘œμ„ΈμŠ€ 병행 ν”„λ‘œμ„ΈμŠ€μ˜ κ°œλ… 병행 ν”„λ‘œμ„ΈμŠ€ : ν”„λ‘œμ„ΈμŠ€λŠ” ν•œ λ²ˆμ— ν•œ 가지 일만 μˆ˜ν–‰ν•  수 μžˆμ§€λ§Œ _운영체제_κ°€ ν”„λ‘œμ„Έμ„œλ₯Ό λΉ λ₯΄κ²Œ μ „ν™˜ν•˜μ—¬ ν”„λ‘œμ„Έμ„œμ˜ μ‹œκ°„μ„ λ‚˜λˆ μ„œ 마치 μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ™μ‹œμ— μ‹€ν–‰ν•˜λŠ” κ²ƒμ²˜λŸΌ 보이게 ν•˜λŠ” 것++을 λœ»ν•œλ‹€. 병행 ν”„λ‘œμ„ΈμŠ€λŠ” 단일 μ²˜λ¦¬μ—μ–΄ μ„œλ‘œ λ…λ¦½μ μœΌλ‘œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 독립 ν”„λ‘œμ„ΈμŠ€, 그리고 λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ™€ ν˜‘λ ₯ν•˜μ—¬ νŠΉμ • κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λŠ” ν˜‘λ ₯ ν”„λ‘œμ„ΈμŠ€λ‘œ λ‚˜λ‰˜κ²Œ λœλ‹€. 독립 ν”„λ‘œμ„ΈμŠ€ 단일 처리 μ‹œμŠ€ν…œμ—μ„œ μˆ˜ν–‰ν•˜λŠ” 병행 ν”„λ‘œμ„ΈμŠ€ λ°©μ‹μœΌλ‘œ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ—λŠ” 영ν–₯을 μ£Όκ³  받지 μ•ŠμœΌλ©΄μ„œ λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰λœλ‹€. 단일 ν”„λ‘œκ·Έλž˜λ° 닀쀑 ν”„λ‘œκ·Έλž˜λ° 닀쀑 처리 ν˜‘λ ₯ ν”„λ‘œμ„ΈμŠ€ ν˜‘λ ₯ ν”„λ‘œμ„ΈμŠ€λŠ” λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ™€ 영ν–₯을 μ£Όκ³  λ°›μœΌλ©° μƒν˜Έμž‘μš©μœΌλ‘œ νŠΉμ • κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λŠ” 비동기적 ν”„λ‘œμ„ΈμŠ€ 이닀. .. 2019. 12. 9.
[운영체제] 9. μŠ€λ ˆλ“œμ˜ κ΅¬ν˜„ μŠ€λ ˆλ“œμ˜ κ΅¬ν˜„ μŠ€λ ˆλ“œλŠ” μš΄μ˜μ²΄μ œμ— 따라 λ‹€μ–‘ν•˜κ²Œ κ΅¬ν˜„λ  수 μžˆλŠ”λ°, 주둜 μ„Έ 가지 ν˜•νƒœλ‘œ κ΅¬λΆ„λœλ‹€. 1. μ‚¬μš©μž μˆ˜μ€€ μŠ€λ ˆλ“œ μŠ€λ ˆλ“œ 라이브러리λ₯Ό μ΄μš©ν•˜μ—¬ μž‘λ™ν•˜λŠ” ν˜•νƒœ λ‹€λŒ€μΌ (n:1) 맀핑 2. 컀널 μˆ˜μ€€ μŠ€λ ˆλ“œ 컀널(운영체제)μ—μ„œ μ§€μ›ν•˜λŠ” ν˜•νƒœ μΌλŒ€μΌ (1:1) 맀핑 3. ν˜Όν•©ν˜• μŠ€λ ˆλ“œ μ‚¬μš©μž μˆ˜μ€€ μŠ€λ ˆλ“œ + 컀널 μˆ˜μ€€ μŠ€λ ˆλ“œμ˜ ν˜•νƒœ λ‹€λŒ€λ‹€ (n:n) 맀핑 1. μ‚¬μš©μž μˆ˜μ€€ μŠ€λ ˆλ“œ μ‚¬μš©μž μˆ˜μ€€ μŠ€λ ˆλ“œλŠ” μ‚¬μš©μž μ˜μ—­μ˜ μŠ€λ ˆλ“œ 라이브러리둜 κ΅¬ν˜„ν•˜κ³ , μŠ€λ ˆλ“œμ™€ κ΄€λ ¨λœ λͺ¨λ“  ν–‰μœ„λ₯Ό μ‚¬μš©μž μ˜μ—­μ—μ„œ ν•˜λ―€λ‘œ 컀널이 μŠ€λ ˆλ“œμ˜ 쑴재λ₯Ό λͺ¨λ₯Έλ‹€. μ—¬κΈ°μ„œ μŠ€λ ˆλ“œ λΌμ΄λΈŒλŸ¬λ¦¬λŠ” μŠ€λ ˆλ“œμ˜ 생성과 μ’…λ£Œ, μŠ€λ ˆλ“œκ°„ λ©”μ‹œμ§€ 전달, μŠ€λ ˆλ“œμ˜ μŠ€μΌ€μ₯΄λ§λ“±μ„ λ³΄κ΄€ν•œλ‹€. ex) Phtread, Win32 Thread, Java Thread.. 2019. 12. 9.
[운영체제] 8. μŠ€λ ˆλ“œμ˜ κ°œλ…κ³Ό μƒνƒœ λ³€ν™” μŠ€λ ˆλ“œμ˜ κ°œλ…κ³Ό μƒνƒœ λ³€ν™” μŠ€λ ˆλ“œμ˜ κ°œλ… ν”„λ‘œμ„ΈμŠ€μ—λŠ” 두 가지 νŠΉμ„±μ΄ μ‘΄μž¬ν•œλ‹€ μžμ›, μ œμ–΄. 이 쀑 μ œμ–΄ λΆ€λΆ„λ§Œ λΆ„λ¦¬ν•œ μ‹€ν–‰ λ‹¨μœ„λ₯Ό μŠ€λ ˆλ“œ(Thread)라고 ν•œλ‹€. ν”„λ‘œμ„ΈμŠ€λŠ” 싀행쀑인 ν”„λ‘œκ·Έλž¨ 객체 자체λ₯Ό μ˜λ―Έν•˜λŠ” 것이고 μŠ€λ ˆλ“œλŠ” 이 μ‹€ν–‰μ˜ 흐름을 이야기 ν•œλ‹€. μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€μ˜ 직접 μ‹€ν–‰ 정보λ₯Ό μ œμ™Έν•˜κ³  λ‚˜λ¨Έμ§€ ν”„λ‘œμ„ΈμŠ€ 관리 정보λ₯Ό κ³΅μœ ν•œλ‹€. ν”„λ‘œμ„ΈμŠ€ 직접 μ‹€ν–‰ 정보: PC, SP, μŠ€νƒ, 지역 데이터, λ¬Έλ§₯ 정보 독립적 μ†Œμœ  각기 λ‹€λ₯Έ ν”„λ‘œμ‹œμ €λ₯Ό ν˜ΈμΆœν•˜κ³  λ‹€λ₯Έ 싀행을 κΈ°λ‘ν•˜κΈ° λ•Œλ¬Έμ— λ³„λ„μ˜ 곡간 ν•„μš” ν”„λ‘œμ„ΈμŠ€ 관리 정보: μ½”λ“œ, μ „μ—­ 데이터, νž™ 곡유 μŠ€λ ˆλ“œλ“€μ΄ λ™μ‹œμ— μ½”λ“œμ˜ λ™μΌν•œ 뢀뢄을 μ‹€ν–‰ν•  수 μžˆμ–΄μ•Ό ν•˜λ―€λ‘œ 곡유된 곡간 ν•„μš” κ²½λŸ‰ ν”„λ‘œμ„ΈμŠ€ LWP,Light_Weight_Process μŠ€λ ˆλ“œ .. 2019. 12. 9.
[운영체제] 7. ν”„λ‘œμ„ΈμŠ€μ˜ 관리 ν”„λ‘œμ„ΈμŠ€μ˜ 관리 ν”„λ‘œμ„ΈμŠ€μ˜ ꡬ쑰 μš΄μ˜μ²΄μ œμ—μ„œλŠ” λ‹€μ–‘ν•œ ν”„λ‘œμ„ΈμŠ€ κ΄€λ ¨ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ”λ° 이λ₯Ό μ•ŒκΈ° 전에 λ¨Όμ € ν”„λ‘œμ„ΈμŠ€μ˜ ꡬ쑰λ₯Ό μ•Œμ•„μ•Ό ν•œλ‹€. ν”„λ‘œμ„ΈμŠ€λŠ” 싀행쀑에 ν”„λ‘œμ„ΈμŠ€ 생성 μ‹œμŠ€ν…œ ν˜ΈμΆœμ„ 톡해 μƒˆλ‘œμš΄ ν”„λ‘œμ„ΈμŠ€λ₯Ό 생성할 수 μžˆλ‹€. 이 λ•Œ ν”„λ‘œμ„ΈμŠ€ 생성 μˆœμ„œλ₯Ό 톡해 λΆ€λͺ¨-μžμ‹ 관계가 ν˜•μ„±λ˜λŠ”λ° 이λ₯Ό μœ μ§€ν•˜λ©° ν”„λ‘œμ„ΈμŠ€λ₯Ό κ³„μΈ΅μ μœΌλ‘œ μƒμ„±ν•œλ‹€. ν”„λ‘œμ„ΈμŠ€μ˜ 생성 1:μƒˆλ‘œμš΄ ν”„λ‘œμ„ΈμŠ€μ— ν”„λ‘œμ„ΈμŠ€ μ‹λ³„μž ν• λ‹Ή 2: ν”„λ‘œμ„ΈμŠ€μ˜ λͺ¨λ“  ꡬ성 μš”μ†Œλ₯Ό 포함할 수 μžˆλŠ” μ£Όμ†Œκ³΅κ°„κ³Ό PCB 곡간 ν• λ‹Ή. 3: PCB μ΄ˆκΈ°ν™”. (ν”„λ‘œμ„ΈμŠ€ μƒνƒœ, PC μ΄ˆκΈ°ν™”, μžμ› μš”μ²­, ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 정보) 4: ν•΄λ‹Ή 큐에 μ‚½μž… fork λͺ…λ Ήμ–΄λ‘œ μƒˆλ‘œμš΄ ν”„λ‘œμ„ΈμŠ€λ₯Ό 생성 ν”„λ‘œμ„ΈμŠ€μ˜ μ’…λ£Œ ν”„λ‘œμ„ΈμŠ€κ°€ λ§ˆμ§€λ§‰ λͺ…령을 μ‹€ν–‰ν•˜λ©΄ μš΄μ˜μ²΄μ œμ— μΈν„°λŸ½νŠΈ μ‹ ν˜Έλ₯Ό λ°œμƒμ‹œμΌœ.. 2019. 12. 7.