쉽게 배우는 운영체제 5장 연습문제

꿀떡냠·2024년 6월 6일

1. 통신 방식 중 동기화를 지원하는 단방향 통신 방식은?

  1. 공유 메모리 : 단방향 통신, 비동기화통신
  2. 파이프 : 단방향 통신, 동기화 통신
  3. 공유 파일 : 단방향 통신, 비동기화 통신
  4. 소켓 : 양방향 통신, 동기화 통신
  • 통신 구현 방식에 따라 동기화/비동기화(바쁜대기) 통신 구분
  • 통신 방향에 따라 단방향, 반양방향, 양방향

2. 통신 방식 중 다른 컴퓨터에 있는 프로세스 간 통신에 사용하는 방식은

  • 소켓

3. 통신 기기 중 반양방향 통신에 해당하는 것은?

  • 무전기

4. 파일 관련 함수에서 파일에 접근할 수 있는 권한을 주는 함수는?

  • open() : open() 함수를 이용하여 사용하고자하는 파일이 있는지, 있다면 읽기/쓰기 권한을 return 한다.

5. 파일 관련 함수에서 파일에 접근할 수 있는 권한을 돌려주는 함수는?

  • close()

6. 인터넷에서 하나의 포트를 여러 프로세스가 공유할 수 있도록 만든 장치는?

  • 소켓 : 하나의 클라이언트는 멀티 소켓에 하나씩 연결된다.

7. 소켓 관련 함수에서 데이터를 보내는 함수는?

  • send()

8. 2개 이상의 프로세스가 공유 자원을 병행해서 읽거나 쓰는 상황을 가리키는 단어는?

  • 경쟁 조건

9. 2개 이상의 프로세스가 동시에 접근해서는 안되는 공유 영역을 가리키는 단어는?

  • 임계구역

10. 임계구역을 보호하기 위해 사용하는 가장 기본적인 방법은?

  • 잠금

11. 임계구역을 보호하기 위한 세가지 조건 중 임계구역에는 하나의 프로세스만 들어가야한다는 조건은?

  • 상호 배제

12. 임계구역을 보호하기 위한 세가지 조건 중 임계 구역에는 하나의 프로세스만 들어가야 한다는 조건은?

  • 3가지 조건 : 상호 배제, 한정 대기, 진행의 융통성
  • 상호배제 : 임계구역에는 하나의 프로세스만 들어갈 수 있다.

13. 임계구역을 보호하기 위한 세가지 조건 중 스레드가 다른 프로세스의 진행을 방해하면 안된다는 조건은?

  • 진행의 융통성

14. 임계구역을 보호하기 위한 세가지 조건 중 무한히 기다리는 프로세스가 있어서는 안된다는 조건은?

  • 한정 대기

15. 임계구역을 보호하기 위해 하드웨어의 도움을 받아 실행되는 코드를 가리키는 것은?

  • 검사와 지정 : 바쁜 대기를 사용하여 검사하기 때문에 자원낭비 발생

16. 임계구역 보호 도구 중 P() 와 V()를 사용하고 여러 자원에 적용 가능한 것은?

  • 세마포어

17. 임계구역 보호 도구 중 공유 자원을 숨기고 접근하기 위한 인터페이스를 제공하여 자원을 보호하고 동기화를 처리하는 방식은?

  • 모니터

18. 세마포어에서 내부 변수를 RS라 했을 때 Semaphore(n)의 내부 코드에 가장 가까운 것은?

1. RS = n;
2. n = RS;
3. RS = RS + n;
4. n = RS + n;

19. 세마포어에서 2개의 공유 자원에 대해 3개의 스레드가 작업하는 경우 올바른 초기화 함수는?

  • Semaphore(2)

20. 공유 메모리나 공유 파일, 파이프, 소켓을 이용한 통신 중에서 동기화를 지원하며 하나의 부모-자식 프로세스 간 통신에 사용하는 단방향 통신 방식은 ( ) 다.

  • (이름 없는) 파이프 이용 통신

21. 공유 메모리나 공유 파일, 파이프, 소텟을 이용한 통신 중에서 동기화를 지원하지 않는 통신 방식은 ( )다.

  • 공유 메모리, 공유 파일 이용 통신

22. ( )는 대표적인 단방향 통신 기기다.

  • 모스부호

23. ( )는 대표적인 양단방향 통신 기기다.

  • 무전기

24. ( ) 함수는 파일에 접근할 수 있는 권한을 준다.

  • open()

25. ( ) 함수는 파일에 접근할 수 있는 권한을 돌려준다.

  • close()

26. ( ) 함수는 데이터를 보낼 때 사용한다.

  • send()

27. 파이프 관련 함수에서 ( )는 데이터를 받을 때 사용한다.

  • recv()

28. ( )란 인터넷에서 하나의 컴퓨터 내에 있는 서로 다른 프로세스를 구분하기 위해 사용하는 주소다.

  • port

29. 소켓 관련 함수에서 ( ) 는 데이터를 읽어오는 함수다.

  • read()

30. ( )은 2개 이상의 작업이 동시에 접근해서는 안 되는 공유 영역이다.

  • 임계 구역

31. ( )는 프로세스가 임계구역을 사용한 후에 다른 프로세스에 임계구역을 사용하라고 알리는 것을 말한다.

  • 동기화 신호

32. ( )은 임계구역을 보호하기 위해서 사용하는 가장 기본적인 방법이다.

  • 잠금

33. 임계구역을 보호하기 위한 세 가지 조건은 ( )이다.

  • 상호 배제, 한정 대기, 진행의 융통성

34. 임계 구역을 보호하기 위한 세 가지 조건 중 ( )는 임계구역 하나의 하나의 프로세스만 들어가야 한다는 것이다.

  • 상호 배제

35. 임계구역을 보호하기 위한 세 가지 조건 중 ( )은 경직된 동기화와 가장 관련이 높다.

  • 경직된 동기화 : 프로세스의 작업이 다른 프로세스로 인해 방해받는 현상을 말한다.
  • 진행의 융통성

36. 임계구역을 보호하기 위한 세 가지 조건 중 ( )는 무한히 기다리는 프로세스가 있어서는 안된다는 것이다.

  • 한정 대기

37. ( )은 하드웨어 도움을 받아 임계구역을 보호하는 코드다.

  • 검사와 지정

38. 임계구역 보호 도구중 ( )는 P()와 V()를 사용하고 여러 자원에 대하여 적용이 가능하다.

  • 세마포어

39. 임계구역 보호 도구 중 ( )는 lock과 unlock, 동기화를 자동으로 처리하는 방식이다.

  • 모니터

40. 세마포어에서 2개의 공유 자원에 대해 3개의 프로세스가 작업하는 경우에 올바른 초기화 함수는 ( )다.

  • Semaphore(2)

41. 프로세스 간 통신에 대하여 간략히 설명하시오,.

  • 각 프로세스는 독립적으로 진행된다. 각 프로세스가 데이터를 주고받아야하는 경우 프로세스 간 통신을 진행해야한다. 프로세스 간 통신 방법으로는 공유 파일, 공유메모리 통신 방법과 파이프 통신 방법, 그리고 소켓 통신 방법이 있다. 각 프로세스 방법은 통신 방향과 통신 구현 방식에 차이가 있다.
  • 공유 파일, 공유 메모리 통신 방법은 단방향으로 진행되고 비동기 방식으로 구현된다.
  • 파이프 통신 방법은 단방향으로 진행되고 동기 방식으로 구현된다.
  • 소켓 통신 방법은 양방향으로 진행되고 동기 방식으로 구현된다.

42. 임계 구역과 임계구역 문제를 해결하기 위한 세 가지 조건에 대하여 설명하시오.

  • 임계 구역은 공유되는 자원으로 한 번에 두개 이상의 프로세스가 접근하여 작업을 하면 안돼는 구역을 말한다.
  • 임계구역 문제를 해결하기 위해서는 상호 배제, 한정 대기, 진행의 융통성 조건을 만족해야한다.

43. 임계구역 문제를 해결하기 위한 다음 코드의 문제점을 지적하고 무엇이 위반되는지 설명하시오.

  • lock의 변수를 바꿔주지 못하고 타임슬라이스가 끝나는 경우 다른 프로세스는 실행되지 못하고 무한 대기를 할수 있는 상황이 생길 수 있다. 이 경우 한정 대기 조건을 만족하지 못한다.

44. 세마 포어 내부 코드에 대하여 설명하시오.

  • 세마 포어는 사용가능한 공유 자원의 개수로 초기화를 진행한다.
  • 프로세스가 공유 자원을 사용하고자 할때, 사용 가능한 공유 자원이 있는 경우 프로세스는 공유 자원을 사용할 수 있다.
  • P()를 통해 사용 가능한 공유 자원이 있는 경우 공유 자원의 개수를 -1 한 후 작업을 진행하고, 사용 가능한 공유 자원이 없는 경우 세마포어 대기큐로 프로세스가 이동된다.
  • 작업을 진행하고 작업을 마친 후 공유 자원의 개수를 다시 +1 한다.
  • V()를 통해 세마포어 대기 큐에 있는 대기중인 프로세스에게 동기화 신호를 보내서 대기중인 프로세스가 작업을 진행할 수 있도록 한다.

45. 모니터의 탄생 배경과 특징을 설명하시오.

  • 세마포어는 사용자가 직접 초기화 작업과 P(), V() 함수를 호출해야한다. 사용자 실수 또는 고의로 인해 임계 구역을 보호하지 못하는 경우가 생길 수 있다. 이를 해결하기 위해 공유 자원 및 임계 구역을 내부로 숨겨 사용자가 직접 사용하지 못하도록 자원을 보호하고 사용하기 위한 인터페이스를 제공하면서 자원을 보호하고 사용자가 편하게 자원을 사용할 수 있도록 하기위해 모니터가 탄생했다.
  • 공유자원 및 임계구역에 직접적으로 접근할 수 없고 인터페이스를 통해만 접근할 수 있는 점을 보면 운영체제의 시스템 호출과 비슷한 특징을 가진다.
profile
백엔드 개발자로 살아남기

0개의 댓글