delpho

운영체제에 대하여 - 2 본문

CS

운영체제에 대하여 - 2

delpho 2022. 7. 24. 20:45

_1. 동기와 비동기의 차이(블로킹, 넌블로킹) / 장단점에 대해 설명해보세요.

 

동기는 요청과 결과가 한 자리에서 동시에 일어나는 것이며, 비동기는 요청한 그 자리에서 결과가 주어지지 않는 것 입니다. 그렇기에 동기 방식은 설계가 간단하지만 결과가 주어질 때 까지 대기해야하는 단점이 있습니다. 비동기 방식은 동기 방식보다 설계가 복잡할 수 있지만, 그 시간동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있습니다.

 

 

 


_2. 멀티스레드 프로그래밍에 대해 설명해보세요.

 

멀티스레드란 하나의 어플리케이션을 여러개의 스레드로 구성하여 하나의 스레드가 하나의 작업을 처리하도록 하는 방식입니다. db 작업과 같은 긴 작업을 수행하는 경우, 사용자와 애플리케이션이 상호작용이 불능이 될 수 있기에 사용하며, 멀티스레드는 응답성이 좋고 자원공유가 쉽다는 장점이 있지만, 오버헤드 발생의 위험과 안정성에 영향을 줄 수 있습니다.

 

 

 

[ 멀티스레드 ]

 

# 멀티 스레드

  • 하나의 애플리케이션을 여러 개의 스레드로 구성하여 하나의 스레드가 하나의 작업을 처리하도록 하는 것

 

 

# 멀티스레드 사용 이유

  • 사용자와 상호작용하는 애플리케이션에서 단일 스레드로 network or DB와 같은 긴 작업을 수행하는 경우, 처리하는 동안 사용자와 상호작용이 불능인 상태가 될수 있기 때문

 

 

 

 

 

# 멀티 스레드 특징

  • 응답성이 좋다. 
    • 프로그램의 일부분(자식 스레드)이 오류 또는 긴 작업으로 인해 중단되어도 프로그램이 계속 적으로 수행된다.
  • 자원 공유가 쉽다
    • 스레드들은 부모 프로세스의 자원과 메모리를 공유 할 수 있다.
      • 둘 이상의 스레드가 동시에 접근해서는 안되는 공유 자원에 접근하면 안정성이 떨어짐
  • 프로세스를 할당하는 것보다 스레드를 할당하는 것이 비용이 적다.
  • 구현 및 테스트, 디버깅이 어렵다
  • 너무 많은 스레드 사용은 오버헤드를 발생시킨다.
  • 동기화 그리고 교착상태가 발생하지 않도록 주의해야 한다.
  • 자식 스레드 중 하나에 문제가 생긴경우 전체 프로세스에 영향을 줄 수 있다.

 

 

 

 

 

 


출처

https://private.tistory.com/24

 

동기와 비동기의 개념과 차이

데이터를 받는 방식인 동기와 비동기. 이 둘의 개념에 대해 설명하는 게시물은 매우 많은데 프로그래밍적으로 생각했을 때 이해가 가지 않아서 쉽게 이해를 할 수 있는 동기와 비동기의 예가

private.tistory.com

https://inpa.tistory.com/entry/%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%E2%9A%94%EF%B8%8F-%EC%93%B0%EB%A0%88%EB%93%9C-%EC%B0%A8%EC%9D%B4#c0e8

 

👩‍💻 프로세스 vs 쓰레드 차이 정리

프로세스(Process) 프로세스라는 명칭은 낯설수 있는데, 프로그램은 친숙하리라 생각된다. 우리가 흔히 말하는 프로그램이 실행되면 프로세스 인스턴스가 생성된다. 인스턴스가 생성된다는 의미

inpa.tistory.com

 

'CS' 카테고리의 다른 글

운영체제에 대하여 - 4  (0) 2022.07.27
운영체제에 대하여 - 3  (0) 2022.07.27
운영체제에 대하여 - 1  (0) 2022.07.24
자료구조에 대하여 - 2  (0) 2022.07.06
자료구조에 대하여 - 1  (0) 2022.07.05