본문 바로가기
Develop/Network

[윤성우의 열혈 TCP/IP 소켓 프로그래밍] Chapter20 - 내용 확인 문제 풀이

by Tarra 2023. 7. 2.

 

 

 

 

 [윤성우의 열혈 TCP / IP 소켓 프로그래밍] 책을 기반으로 개인적으로  문제 풀이 및 개념을 정리한 내용입니다.

모든 소스 코드와 강의, 확인 문제의 정확한 답안은 (23년 7월 1일부터 전면 무료화 예정)

http://www.orentec.co.kr/

 

====== 오렌지 미디어 ======

 

www.orentec.co.kr

에서 확인할 수 있습니다.

 

 


 

01. 윈도우 운영체제의 유저모드, 커널모드와 관련해서 옳은 것을 모두 고르면?

a. 유저모드는 응용 프로그램이 실행되는 기본모드로, 접근할 수 있는 메모리의 영역에는 제한이 없지만 물리적인 영역으로의 접근이 허용되지 않는다.

b. 응용 프로그램이 실행되는 과정에서는 절대 커널모드로 진입하지 않는다. 응용 프로그램이 실행중인 과정에서는 유저모드로만 동작한다.

c. 윈도우는 메모리의 효율적인 사용을 위해서 유저모드와 커널모드는 각각 별도로 정의하고 있다.

d. 응용 프로그램이 실행되는 과정에서도 커널모드로의 변환이 발생할 수 있다. 단, 일단 커널모드로 변환이 되면, 프로세스는 이 상태로 실행을 계속 이어아게 된다.

 

정답 a, b, c, d

 

02. 유저모드 동기화, 커널모드 동기화와 관련된 다음 문장들 중에서 말하는 바가 옳으면 O, 틀리면 X를 표시하자.

- 유저모드 동기화는 커널모드로의 전환을 수반하지 않는다. 즉, 운영체제 레벨에서 제공되는 기능의 동기화가 아니다. (O)

- 커널모드 동기화는 운영체제를 통해서 제공되는 기능이므로, 유저모드 동기화에 비해서 많은 기능을 제공한다. (O)

- 커널모드 동기화 과정에서는 유저모드에서 커널모드로, 다시 커널모드에서 유저모드로의 전환과정이 수반된다는 단점이 있다. (O)

- 특별한 경우가 아니면 커널모드 동기화를 사용하는 것이 원칙이다. 유저모드 동기화는 커널모드 동기화가 제공되기 이전의 동기화 기법이다. (X)

유저모드 동기화와 커널모드 동기화는 서로 다른 개념이며, 제공되는 동기화 기능의 범위와 동작 방식에 차이가 있다.

 

유저모드 동기화는 사용자 수준에서 동작하는 동기화 기법으로, 운영체제 커널 외부에서 구현된다.

이러한 동기화 기법은 커널 모드 동기화가 제공되기 이전에 사용되었으며, 주로 유저모드 라이브러리나 응용 프로그램에서 사용된다.

유저모드 동기화는 프로세스 간의 동기화나 스레드 간의 동기화를 달성하기 위해 사용될 수 있다.

하지만 유저모드 동기화는 커널에 직접적인 개입이 없기 때문에 성능상의 제약이 있을 수 있다.

 

반면에 커널모드 동기화는 운영체제 커널에서 제공하는 동기화 기능을 의미한다.

이는 운영체제의 커널모드에서 실행되며, 커널의 기능과 자원을 활용하여 동기화를 수행한다.

커널모드 동기화는 커널의 지원을 받기 때문에 더욱 강력하고 안전한 동기화 기능을 제공할 수 있다.

일반적으로 커널모드 동기화는 특별한 경우가 아니라면 사용하는 것이 권장된다.

 

 

03. 본문의 예제 SyncSema_win.c의 Read 함수는 임계영역을 빠져나가는데 오랜 시간이 걸리도록 정의되어 있다. 이에 대한 해결책을 제시하고 실제 예제에 적용해보자.

 

(생략)

 

더보기

모범 답안

scanf 함수의 호출과 같이 일정시간 이상 대기상태에 놓을 수 있는 함수의 호출은 가급적이면 임계영역에 포함시키지 말아야 한다.

 

 

04. 본문의 예제 SyncEvent_win.one를 세마포어 기반의 동기화 기법을 적용해서 동일한 실행결과를 보이도록 재 구현해 보자.

 

(생략)

 


출처 : [윤성우의 열혈 TCP / IP 소켓 프로그래밍] / 윤성우 저 / 오렌지 미디어

https://cafe.naver.com/cstudyjava

 

윤성우의 프로그래밍 스터디그룹 [C/... : 네이버 카페

윤성우의 스터디 공간입니다. C와 JAVA를 공부하시는 분들은 모두 들어오세요. ^^

cafe.naver.com