delpho
운영체제에 대하여 - 2 본문
_1. 동기와 비동기의 차이(블로킹, 넌블로킹) / 장단점에 대해 설명해보세요.
동기는 요청과 결과가 한 자리에서 동시에 일어나는 것이며, 비동기는 요청한 그 자리에서 결과가 주어지지 않는 것 입니다. 그렇기에 동기 방식은 설계가 간단하지만 결과가 주어질 때 까지 대기해야하는 단점이 있습니다. 비동기 방식은 동기 방식보다 설계가 복잡할 수 있지만, 그 시간동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있습니다.
_2. 멀티스레드 프로그래밍에 대해 설명해보세요.
멀티스레드란 하나의 어플리케이션을 여러개의 스레드로 구성하여 하나의 스레드가 하나의 작업을 처리하도록 하는 방식입니다. db 작업과 같은 긴 작업을 수행하는 경우, 사용자와 애플리케이션이 상호작용이 불능이 될 수 있기에 사용하며, 멀티스레드는 응답성이 좋고 자원공유가 쉽다는 장점이 있지만, 오버헤드 발생의 위험과 안정성에 영향을 줄 수 있습니다.
[ 멀티스레드 ]
# 멀티 스레드
- 하나의 애플리케이션을 여러 개의 스레드로 구성하여 하나의 스레드가 하나의 작업을 처리하도록 하는 것
# 멀티스레드 사용 이유
- 사용자와 상호작용하는 애플리케이션에서 단일 스레드로 network or DB와 같은 긴 작업을 수행하는 경우, 처리하는 동안 사용자와 상호작용이 불능인 상태가 될수 있기 때문
# 멀티 스레드 특징
- 응답성이 좋다.
- 프로그램의 일부분(자식 스레드)이 오류 또는 긴 작업으로 인해 중단되어도 프로그램이 계속 적으로 수행된다.
- 자원 공유가 쉽다
- 스레드들은 부모 프로세스의 자원과 메모리를 공유 할 수 있다.
- 둘 이상의 스레드가 동시에 접근해서는 안되는 공유 자원에 접근하면 안정성이 떨어짐
- 스레드들은 부모 프로세스의 자원과 메모리를 공유 할 수 있다.
- 프로세스를 할당하는 것보다 스레드를 할당하는 것이 비용이 적다.
- 구현 및 테스트, 디버깅이 어렵다
- 너무 많은 스레드 사용은 오버헤드를 발생시킨다.
- 동기화 그리고 교착상태가 발생하지 않도록 주의해야 한다.
- 자식 스레드 중 하나에 문제가 생긴경우 전체 프로세스에 영향을 줄 수 있다.
출처
https://private.tistory.com/24
동기와 비동기의 개념과 차이
데이터를 받는 방식인 동기와 비동기. 이 둘의 개념에 대해 설명하는 게시물은 매우 많은데 프로그래밍적으로 생각했을 때 이해가 가지 않아서 쉽게 이해를 할 수 있는 동기와 비동기의 예가
private.tistory.com
👩💻 프로세스 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 |