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

[운영체제] 동기/비동기(Sync/Async), λΈ”λ‘œν‚Ή/λ…ΌλΈ”λ‘œν‚Ή(Blocking/Non-Blocking)
Computer Science/πŸ”’ Operating System

[운영체제] 동기/비동기(Sync/Async), λΈ”λ‘œν‚Ή/λ…ΌλΈ”λ‘œν‚Ή(Blocking/Non-Blocking)

728x90

동기/비동기? λΈ”λ‘œν‚Ή/λ…ΌλΈ”λ‘œν‚Ή?

동기와 비동기, λΈ”λ‘œν‚Ήκ³Ό λ…ΌλΈ”λ‘œν‚Ήμ˜ κ°œλ…μ€ μœ μ‚¬ν•˜κ²Œ 느껴질 수 μžˆμ§€λ§Œ μ„œλ‘œ λ°”λ‘œλ³΄λŠ” 관점을 λ‹¬λ¦¬ν•˜κ³  μžˆλ‹€.

동기/λΉ„λ™κΈ°λŠ” 일을 μ²˜λ¦¬ν•˜λŠ” μˆœμ„œ(μ‹œμ )와 κ²°κ³Ό(처리)와 κ΄€λ ¨μžˆλŠ” κ°œλ…μœΌλ‘œ 이전 μž‘μ—… μ’…λ£Œμ™€ λ™μ‹œμ— μ‹œμž‘ν•˜λ©΄ 동기, κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ λΉ„λ™κΈ°λ‘œ κ΅¬λΆ„ν•œλ‹€.

λΈ”λ‘œν‚Ή/λ…ΌλΈ”λ‘œν‚Ήμ€ μ œμ–΄κΆŒκ³Ό κ΄€λ ¨μžˆλŠ” κ°œλ…μœΌλ‘œ ν•¨μˆ˜ 호좜 μ‹œ μ œμ–΄κΆŒμ΄ λ„˜μ–΄κ°€λ©΄ λΈ”λ‘œν‚Ή, κ·Έλ ‡μ§€ μ•Šκ³  μžμ‹ μ˜ 할일을 μ§€μ†ν•˜λ©΄ λ…ΌλΈ”λ‘œν‚ΉμœΌλ‘œ κ΅¬λΆ„ν•œλ‹€.

 

동기(Synchronous)

  • μž‘μ—…μ„ λ™μ‹œμ— μˆ˜ν–‰ν•˜κ±°λ‚˜ λ™μ‹œμ— λλ‚˜κ±°λ‚˜ λλ‚˜λŠ” λ™μ‹œμ— μ‹œμž‘ν•¨
    • μš”μ²­ μž‘μ—…μ˜ μ’…λ£Œ μ‹œμ κ³Ό λ‚˜λ¨Έμ§€ μž‘μ—… μš”μ²­ μ‹œμž‘ μ‹œμ μ˜ λ™μ‹œμ„±
  • ν˜ΈμΆœν•œ ν•¨μˆ˜μ˜ μž‘μ—… μ™„λ£Œ 응닡이 ν•„μš”ν•΄ μž‘μ—… μ™„λ£Œ μ—¬λΆ€λ₯Ό κ³„μ†ν•΄μ„œ λ¬»κ±°λ‚˜ μ‘닡을 κΈ°λ‹€λ¦Ό
  • ν˜ΈμΆœν•œ ν•¨μˆ˜μ˜ μž‘μ—… μ™„λ£Œ 여뢀에 λŒ€ν•΄ κ³„μ†ν•΄μ„œ 관심을 κ°–μŒ
  • 응닡(리턴값)에 λŒ€ν•΄ μ¦‰κ°μ μœΌλ‘œ 처리

 

비동기(Asynchronous)

  • μš”μ²­ μž‘μ—…μ˜ μ’…λ£Œμ™€ λ‹€λ₯Έ μš”μ²­μ˜ μ‹œμž‘ μ‹œμ μ΄ μΌμΉ˜ν•˜μ§€ μ•ŠμœΌλ©° λλ‚˜λŠ” λ™μ‹œμ— μ‹œμž‘ν•˜μ§€ μ•ŠμŒ
  • ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜μ—¬ μ‹€ν–‰λ§Œ μ‹œν‚¬ 뿐 μž‘μ—…μ˜ μ™„λ£Œ μ—¬λΆ€μ—λŠ” 관심을 κ°–μ§€ μ•ŠμœΌλ©° μžμ‹ μ˜ μž‘μ—…μ„ κ³„μ†ν•΄μ„œ 이어감
  • 응닡(리턴값)에 λŒ€ν•œ μ²˜λ¦¬λŠ” μ¦‰κ°μ μœΌλ‘œ μ΄λ£¨μ–΄μ§ˆ μˆ˜λ„, 이루어지지 μ•Šμ„ μˆ˜λ„ 있음(λ‚˜μ€‘μ— 처리)
  • μš”μ²­ 및 ν•¨μˆ˜ 호좜 μ‹œ 콜백 ν•¨μˆ˜λ₯Ό ν•¨κ»˜ μ „λ‹¬ν•˜κ³ , 응닡이 μ€€λΉ„λ˜λ©΄ ν•¨κ»˜ 보낸 콜백 ν•¨μˆ˜κ°€ 싀행됨

 

λΈ”λ‘œν‚Ή(Blocking)

  • A ν•¨μˆ˜κ°€ B ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©΄ AλŠ” Bμ—κ²Œ μ œμ–΄κΆŒμ„ λ„˜κ²¨μ£Όκ³ , BλŠ” μžμ‹ μ˜ μž‘μ—…μ΄ 끝날 λ•ŒκΉŒμ§€ μ œμ–΄κΆŒμ„ κ°€μ§€κ³  있음
  • A ν•¨μˆ˜λŠ” B ν•¨μˆ˜μ˜ 싀행이 끝날 λ•ŒκΉŒμ§€ λ©ˆμΆ”κ³  κΈ°λ‹€λ¦Ό
  • B ν•¨μˆ˜κ°€ μˆ˜ν–‰μ„ μ™„λ£Œν•΄μ„œ μ œμ–΄κΆŒμ„ λ‹€μ‹œ Aν•¨μˆ˜μ—κ²Œ λ„˜κ²¨μ£Όλ©΄ A ν•¨μˆ˜λŠ” μžμ‹ μ˜ μž‘μ—…μ„ λ‹€μ‹œ μ‹€ν–‰

 

λ…ΌλΈ”λ‘œν‚Ή(Non-Blocking)

  • A ν•¨μˆ˜κ°€ B ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©΄ μ œμ–΄κΆŒμ€ λ„˜μ–΄κ°€μ§€ μ•Šμ€ 채 B ν•¨μˆ˜κ°€ μ‹€ν–‰
    • ν•¨μˆ˜ 호좜 μ‹œ μ œμ–΄κΆŒμ΄ Bν•¨μˆ˜μ—κ²Œ λ„˜μ–΄κ°€μ§€λ§Œ λ°”λ‘œ A ν•¨μˆ˜μ—κ²Œ λ„˜μ–΄κ°„λ‹€κ³  λ³΄λŠ” λ ˆνΌλŸ°μŠ€λ„ μžˆμ§€λ§Œ μ–΄μ°Œλλ“  핡심은 호좜된 ν•¨μˆ˜κ°€ μ‹€ν–‰ 쀑일 λ•Œλ„ μ œμ–΄κΆŒμ„ κ°€μ§€κ³  μžˆλ‹€λŠ” μ‚¬μ‹€μž„
  • A ν•¨μˆ˜λŠ” μ—¬μ „νžˆ μ œμ–΄κΆŒμ„ κ°€μ§€κ³  μžˆμœΌλ―€λ‘œ B ν•¨μˆ˜μ˜ μ‹€ν–‰/μ’…λ£Œ 여뢀와 관계없이 κ³„μ†ν•΄μ„œ μžμ‹ μ˜ μž‘μ—… μˆ˜ν–‰

 

 

동기/비동기 + λΈ”λ‘œν‚Ή/λ…ΈλΈ”λ‘œν‚Ή μ‘°ν•©

 

1) Sync-Blocking

  • A ν•¨μˆ˜λŠ” B ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©° μ œμ–΄κΆŒμ„ λ„˜κ²¨μ£Όκ³ (λΈ”λ‘œν‚Ή), ν•¨μˆ˜ B의 리턴값을 κΈ°λ‹€λ¦Ό(동기)
  • A ν•¨μˆ˜λŠ” B ν•¨μˆ˜μ˜ 리턴값과 μ œμ–΄κΆŒμ„ 기닀리며 아무것도 ν•˜μ§€ μ•ŠμŒ

 

2) Sync-Nonblocking

  • A ν•¨μˆ˜λŠ” B ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©° μ œμ–΄κΆŒμ„ λ„˜κΈ°μ§€ μ•Šκ³  μžμ‹ μ˜ μž‘μ—…μ„ 계속 μˆ˜ν–‰ν•¨(λ…ΌλΈ”λ‘œν‚Ή)
  • A ν•¨μˆ˜λŠ” B ν•¨μˆ˜μ˜ 리턴값이 ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ— μžμ‹ μ˜ μž‘μ—… μ‹€ν–‰ 쀑간쀑간 B ν•¨μˆ˜μ˜ μ’…λ£Œ μ—¬λΆ€λ₯Ό λ¬Όμ–΄μ„œ 확인함(동기)
  • λŒ€ν‘œμ  예) Polling

 

3) Async-Nonblocking

  • A ν•¨μˆ˜λŠ” B ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©° μ œμ–΄κΆŒμ„ λ„˜κΈ°μ§€ μ•Šκ³  μžμ‹ μ˜ μž‘μ—…μ„ 계속 μˆ˜ν–‰ν•¨(λ…ΌλΈ”λ‘œν‚Ή)
  • A ν•¨μˆ˜λŠ” B ν•¨μˆ˜ 호좜 μ‹œ 콜백 ν•¨μˆ˜λ₯Ό λ„˜κ²¨μ£Όλ©° B ν•¨μˆ˜μ˜ μ’…λ£Œ 여뢀에 관심을 κ°–μ§€ μ•ŠμŒ(동기)
  • B ν•¨μˆ˜λŠ” μžμ‹ μ˜ μž‘μ—…μ΄ μ™„λ£Œλ˜λ©΄ A ν•¨μˆ˜κ°€ μ€€ 콜백 ν•¨μˆ˜λ₯Ό μ‹€ν–‰(동기)

 

4) Async-Blocking

  • A ν•¨μˆ˜λŠ” B ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©° B ν•¨μˆ˜μ˜ μ’…λ£Œ 즉, 리턴값에 μ‹ κ²½μ“°μ§€ μ•ŠμœΌλ©° 콜백 ν•¨μˆ˜ λ§Œμ„ 보냄(비동기)
  • A ν•¨μˆ˜λŠ” B ν•¨μˆ˜μ˜ μž‘μ—…μ— 관심이 μ—†μ§€λ§Œ μ œμ–΄κΆŒμ„ λ„˜κ²¨ B ν•¨μˆ˜κ°€ μ’…λ£Œλ  λ•ŒκΉŒμ§€ κΈ°λ‹€λ¦Ό(λΈ”λ‘œν‚Ή)
728x90
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)

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

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

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