J1Yun
ZU-TECHLOG
J1Yun
전체 방문자
였늘
μ–΄μ œ
  • πŸ“‘ Category (135)
    • Algorithm (61)
      • πŸ“š Concept (6)
      • πŸ“˜ Baekjoon Judge (53)
      • πŸ“— Programmers (2)
    • Computer Science (42)
      • πŸ”’ Operating System (14)
      • πŸ“‘ Network (15)
      • πŸ’Ύ Database (8)
      • 🧩 Design Pattern (4)
      • πŸ”‘ Security (1)
    • Activities (12)
      • 🦁 λ©‹μŸμ΄μ‚¬μžμ²˜λŸΌ 9κΈ° (6)
      • πŸ’» SWλ§ˆμ—μŠ€νŠΈλ‘œ 13κΈ° (6)
    • Infra (1)
      • ☁️ AWS (1)
    • Languages (1)
      • πŸ’™ Python (1)
    • Backend (7)
      • πŸ”΅ Django (4)
      • 🟒 Node.js (3)
    • Ect. (8)
      • πŸ’¬ Talk (0)
      • πŸ—‚οΈ 개발직ꡰ μ·¨μ—… μ€€λΉ„μžλ£Œ (8)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

250x250
hELLO Β· Designed By μ •μƒμš°.
J1Yun

ZU-TECHLOG

[운영체제] μœ μ €λͺ¨λ“œ(User-Mode)와 컀널λͺ¨λ“œ(Kernel-Mode), μΈν„°λŸ½νŠΈ(Interrupt)와 μ‹œμŠ€ν…œμ½œ(System Call)
Computer Science/πŸ”’ Operating System

[운영체제] μœ μ €λͺ¨λ“œ(User-Mode)와 컀널λͺ¨λ“œ(Kernel-Mode), μΈν„°λŸ½νŠΈ(Interrupt)와 μ‹œμŠ€ν…œμ½œ(System Call)

728x90

μœ μ € λͺ¨λ“œ(User-Mode)와 컀널 λͺ¨λ“œ(Kernel-Mode)

  • μ»€λ„μ—μ„œλŠ” μ€‘μš”ν•œ μžμ›μ„ κ΄€λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— μ‚¬μš©μžκ°€ ν•΄λ‹Ή μžμ›μ— μ‰½κ²Œ μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λ„둝 λ³΄ν˜Έν•˜κΈ° μœ„ν•΄ λ‚˜λ‰¨
  • μ‹œμŠ€ν…œμ— μ€‘μš”ν•œ 영ν–₯을 λ―ΈμΉ˜λŠ” 연산은 컀널 λͺ¨λ“œμ—μ„œλ§Œ μ‹€ν–‰λ˜λ„λ‘ ν•¨μœΌλ‘œμ¨ ν•˜λ“œμ›¨μ–΄ λ³΄μ•ˆ μœ μ§€
  • ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λ˜λŠ” λ™μ•ˆ μœ μ € λͺ¨λ“œμ™€ 컀널 λͺ¨λ“œλ₯Ό 반볡적으둜 λ„˜λ‚˜λ“¬
  • μœ μ € μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μ‹œμŠ€ν…œ μ„œλΉ„μŠ€λ₯Ό ν˜ΈμΆœν•  λ•Œ μœ μ € λͺ¨λ“œμ—μ„œ 컀널 λͺ¨λ“œλ‘œ μ „ν™˜

μœ μ €/μ‚¬μš©μž λͺ¨λ“œ

  • μ‚¬μš©μžκ°€ μ ‘κ·Όν•  수 μžˆλŠ” μ˜μ—­μ„ μ œν•œμ μœΌλ‘œ 두고 ν”„λ‘œκ·Έλž¨μ˜ μžμ›μ— ν•¨λΆ€λ‘œ μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λ„둝 ν•˜λŠ” λͺ¨λ“œ
  • ν•˜λ“œμ›¨μ–΄ 직접 μ ‘κ·Ό λΆˆκ°€λŠ₯
  • μ½”λ“œ μž‘μ„±, ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰ λͺ…λ Ή λ“± μ‹€ν–‰ κ°€λŠ₯
  • μœ μ € μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ½”λ“œκ°€ μ‹€ν–‰

컀널 λͺ¨λ“œ

  • λͺ¨λ“  μ‹œμŠ€ν…œ λ©”λͺ¨λ¦¬ λ“± ν•˜λ“œμ›¨μ–΄μ— 직접 μ ‘κ·Ό κ°€λŠ₯
  • λͺ¨λ“  CPU λͺ…λ Ή μ‹€ν–‰ κ°€λŠ₯
  • 운영체제 μ½”λ“œλ‚˜ λ””λ°”μ΄μŠ€ λ“œλΌμ΄λ²„ 같은 컀널λͺ¨λ“œ μ½”λ“œκ°€ μ‹€ν–‰

 

 

μΈν„°λŸ½νŠΈ(Interrupt)

  • μ‹œμŠ€ν…œμ—μ„œ λ°œμƒν•œ λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ 이벀트 or 그런 이벀트λ₯Ό μ•Œλ¦¬λŠ” λ©”μ»€λ‹ˆμ¦˜
  • μΈν„°λŸ½νŠΈ μ‹ ν˜Έκ°€ λ“€μ–΄μ˜€λ©΄ CPUλ₯Ό 잠깐 μ •μ§€, μ¦‰κ°μ μœΌλ‘œ μΈν„°λŸ½νŠΈλ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ 컀널 μ½”λ“œλ₯Ό 컀널 λͺ¨λ“œμ—μ„œ μ‹€ν–‰
  • ν‚€λ³΄λ“œ/마우슀 λ“± IO λ””λ°”μ΄μŠ€λ‘œ μΈν•œ μΈν„°λŸ½νŠΈ, 0으둜 λ‚˜λˆ„λŠ” μ‚°μˆ  μ—°μ‚°μ—μ„œμ˜ μΈν„°λŸ½νŠΈ, 처리 μ‹œκ°„μ΄ λ‹€ λ˜μ—ˆμ„ λ•Œμ˜ μΈν„°λŸ½νŠΈ, ν”„λ‘œμ„ΈμŠ€ 였λ₯˜λ‘œ μΈν•œ μΈν„°λŸ½νŠΈ λ“± λ°œμƒ
    • ν•˜λ“œμ›¨μ–΄ μΈν„°λŸ½νŠΈ: IO λ””λ°”μ΄μŠ€μ—μ„œ λ°œμƒν•˜λŠ” μΈν„°λŸ½νŠΈ
    • μ†Œν”„νŠΈμ›¨μ–΄ μΈν„°λŸ½νŠΈ(트랩): 0으둜 λ‚˜λˆ„λŠ” μ‚°μˆ  μ—°μ‚°, 잘λͺ»λœ λ©”λͺ¨λ¦¬ 곡간 μ ‘κ·Ό λ“± ν”„λ‘œμ„ΈμŠ€ 였λ₯˜λ‘œ λ°œμƒν•˜λŠ” μΈν„°λŸ½νŠΈ

μΈν„°λŸ½νŠΈ 처리 κ³Όμ •

  1. μΈν„°λŸ½νŠΈ μš”μ²­
  2. ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰ 쀑단 (μ‹€ν–‰ μ€‘μ΄λ˜ λͺ…λ ΉκΉŒμ§€λ§Œ μˆ˜ν–‰)
  3. PCB(Process Control Block)에 ν˜„μž¬ ν”„λ‘œμ„ΈμŠ€ μƒνƒœ μ €μž₯, PC(Program Counter)에 λ‹€μŒ μ‹€ν–‰ν•  λͺ…λ Ή μ£Όμ†Œ μ €μž₯
  4. μΈν„°λŸ½νŠΈ 벑터λ₯Ό 읽고 μΈν„°λŸ½νŠΈ 처리 루틴 μ‹€ν–‰ (μΈν„°λŸ½νŠΈ 처리)
  5. 처리 μ™„λ£Œ μ‹œ μ €μž₯ν–ˆλ˜ ν”„λ‘œμ„ΈμŠ€ μƒνƒœ 볡ꡬ
  6. μΈν„°λŸ½νŠΈ ν•΄μ œ 및 μ€‘λ‹¨λœ ν”„λ‘œμ„ΈμŠ€ 재개

 

 

μ‹œμŠ€ν…œμ½œ(System Call)

  • μš΄μ˜μ²΄μ œκ°€ 컀널에 μ ‘κ·Όν•˜κΈ° μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€
  • ν”„λ‘œκ·Έλž¨μ΄ OS컀널이 μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜κ³  싢을 λ•Œ μ‹œμŠ€ν…œμ½œ λ°œμƒ
  • μœ μ € λͺ¨λ“œμ—μ„œ 컀널 λͺ¨λ“œ μ˜μ—­μ˜ κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλ„λ‘ 컀널 λͺ¨λ“œλ‘œ μž μ‹œ μ „ν™˜ (μ‹œμŠ€ν…œμ½œμ„ 기반으둜 μœ μ €μ™€ 컀널 뢄리)
  • ν”„λ‘œμ„ΈμŠ€/μŠ€λ ˆλ“œ μ œμ–΄, 파일 μ‘°μž‘, μž₯치 μ‘°μž‘, μ†ŒμΌ“, 톡신 λ“±κ³Ό κ΄€λ ¨ν•œ μ‹œμŠ€ν…œμ½œ λ°œμƒ

파일 Read 예제

 

 

⭐️ 참고

  • http://lapislazull.tistory.com/102
  • https://doh-an.tistory.com/31
  • https://luckyyowu.tistory.com/133
728x90
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)

'Computer Science > πŸ”’ Operating System' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[운영체제] IPC(Inter Process Communication) - ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신  (0) 2023.02.27
[운영체제] PCB와 λ¬Έλ§₯ κ΅ν™˜(Context Switching)  (0) 2023.02.24
[운영체제] 동기/비동기(Sync/Async), λΈ”λ‘œν‚Ή/λ…ΌλΈ”λ‘œν‚Ή(Blocking/Non-Blocking)  (0) 2023.02.22
[운영체제] ν”„λ‘œμ„ΈμŠ€ λ©”λͺ¨λ¦¬ ꡬ쑰 - Code, Data, Heap, Stack  (0) 2023.02.21
[운영체제] ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ, λ©€ν‹° ν”„λ‘œμ„ΈμŠ€μ™€ λ©€ν‹° μŠ€λ ˆλ“œ  (0) 2023.02.20
    'Computer Science/πŸ”’ Operating System' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ 글이닀
    • [운영체제] IPC(Inter Process Communication) - ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신
    • [운영체제] PCB와 λ¬Έλ§₯ κ΅ν™˜(Context Switching)
    • [운영체제] 동기/비동기(Sync/Async), λΈ”λ‘œν‚Ή/λ…ΌλΈ”λ‘œν‚Ή(Blocking/Non-Blocking)
    • [운영체제] ν”„λ‘œμ„ΈμŠ€ λ©”λͺ¨λ¦¬ ꡬ쑰 - Code, Data, Heap, Stack
    J1Yun
    J1Yun
    개발 κ΄€λ ¨ 기술 및 곡뢀 λ‚΄μš© 기둝μž₯

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”