(정보처리기사) 운영체제
*완전 연결 구조 >각 사이트들이 시스템 내의 다른 모든 사이트들과 직접 연결된 구조이다. >사이트 수가 n개이면 링크(연결)수는 n*(n-1)/2개 이다. >모든 사이트를 연결해야 하므로 기본비용은 많이 들지만 각 사이트가 직접 연결되므로 통신비용은 적게 든다. >하나의 링크가 고장나더라도 다른 링크를 이용 할 수 있으므로 신뢰성이 높다. *스레드 > 자신만의 스택과 레지스터를 갖으며 독립된 제어 흐름을 갖는다. * 스레드의 분류 사용자 수준의 스레드: 사용자가 만든 라이브러리를 사용하여 스레드를 운영한다.속도는 빠르지만 구현이 어렵다. 커널 수준의 스레드: 운영체제의 커널에 의해 스레드를 운용한다. 구현이 쉽지만 속도가 느리다. 유저 영역: 사용자가 구현한 프로그램 동작시 사용하게 되는 메모리 영역 커널 영역: 운영체제 동작시 사용하게 되는 메모리영역 커널 레벨 쓰레드: 쓰레드를 생성 및 스케줄링하는 주체가 커널 장점: 안정성과 다양한 기능 단점: 유저모드와 커널 모드로의 전환으로 인해 성능이 저하된다. (참고: 사용자가 구현한 프로그램은 기본적으로 유저모드에서 동작하다가 Windows커널이 실행되어야 하는 경우 커널모드로의 전환이 일어나고 일을 마치면 다시 유저모들 전환된다.) *유저 레벨 쓰레드: 커널에 의존적잊 않은 형태로 쓰레드의 기능을 제공하는 라이브러리를 활용 (참고: 스케줄러는 쓰레드를 지원하지 않아 쓰레드의 존재를 모른다. 따라서 프로세스 단에서 스케줄링을 한다. 따라서 쓰레드끼리의 스케줄링은 유저가 구현해야 한다) 장점: 유저모드에서 커널모드로의 전환이 필요없다. 성능이 좋다 단점: 프로그래밍 하기 어렵고 커널 레벨 쓰레드에 비해 결과 예측이 어렵다 <교착상태 해결 방법> 예방기법(Prevention): 교착 상태가 발생하지 않도록 사전에 시스템을 제어하는 방법으로, ...