본문 바로가기

전체 글36

교착상태2 교착 상태교착 상태 회피교착 상태 성립 조건(4가지 조건)중 한 가지는 성립되지 않도록 하는 방법은 장치의 이용률을 저하시키고 시스템의 총처리율을 감소시킨다. 교착 상태를 회피하는 다른 대안자원이 어떻게 요청될지에 대한 추가 정보를 제공하도록 요구한다.가용 자원, 각 스레드에 할당된 자원, 각 스레드가 요청하거나 방출할 자원의 정보 등자원 R1, R2를 가진 시스템에서스레드 P는 R1을 먼저 요청하고 R2를 요청스레드 Q는 R2를 먼저 요청하고 R1을 요청각 스레드의 요청과 방출에 대한 완전한 순서를 파악하고 있다면 교착 상태를 피하고자 스레드가 대기해야 하는지 여부를 결정할 수 있다.안전 상태안전 상태(Safe State)각 스레드들이 요청하는 모든 자원(최대 요구 수를 요구하더라도) 교착 상태를 발생.. 2024. 12. 25.
교착 상태1 교착 상태교착 상태(deadlock)스레드가 자원을 요청했을 때, 그 자원이 그 순간 이용할 수 없다면 스레드는 대기 상태에 들어간다. 때때로 대기 중인 스레드가 다시는 상태를 변경하지 못하는 경우가 발생하는데, 이는 해당 스레드가 요청한 자원이 다른 대기 중인 스레드에 의해 점유되어 있을 때 발생한다. 이러한 상황을 교착상태(deadlock)라고 한다.시스템 모델시스템은 여러 경쟁 스레드간에 분산 될 한정된 수의 자원으로 구성된다.자원은 여러 유형(또는 클래스)으로 분할될 수 있으며, 각각은 몇 개의 동일한 인스턴스로 구성된다.CPU 사이클, 파일 및 IO 장치 등시스템에 4개의 CPU가 있는 경우 자원 유형 CPU에는 4개의 인스턴스가 존재한다.스레드는 자원을 사용하기 전에 자원를 요청해야하며 자원을.. 2024. 12. 16.
동기화 예제 동기화 예제고전적인 동기화 문제들동기화 방법들을 검증하는데 사용되는 동기화 문제들유한 버퍼 문제동기화 기본요소(뮤텍스, 세마포어 등)들의 능력을 설명하기 위하여 사용되는 문제다. 생산자 소비자는 다음과 같은 자료 구조를 공유한다.int n;semaphore mutex = 1;semaphore empty = n;semaphore full = 0;n개의 버퍼로 구성된 풀이 있으며, 각 버퍼는 한 아이템을 저장할 수 있다.mutex 이진 세마포어는 버퍼 풀에 접근하기 위한 상호 배제 기능을 제공하며 1로 초기화 된다.while(true) { /* 버퍼에 넣을 아이템 생성 */ ... wait(empty); wait(mut.. 2024. 12. 2.
동기화 도구들 동기화 도구들배경생산자 소비자 문제// 생산자while (true) { while (count == BUFFER_SIZE); buffer[in] = next_produced; in = (in + 1) % BUFFER_SIZE; count++;}// 소비자while (true) { while (count == 0); next_consumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; count--;}생산자와 소비자 코드를 병행적으로 수행시키면 올바르게 동작하지 않는다. count 값이 5이고, 생산자 소비자가 count++, count--를 병행적으로 실행할 때 count의 값은 4,5,6이 될 수 있다. (올바른 값은 5).. 2024. 11. 9.
CPU 스케줄링 CPU 스케줄링기본 개념다중 프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행 중인 프로세스를 가지게 하는 데 있다. 다중 프로그래밍에서는 다수의 프로세스를 메모리에 유지하고, 어떤 프로세스가 대기해야 할 경우, 운영체제는 CPU를 그 프로세스로부터 다른 프로세스에 할당한다. 이러한 패턴은 계속된다. 이러한 종류의 스케줄링은 운영체제의 기본적인 기능이다.CPU-I/O 버스트 사이클프로세스들은 CPU 실행과 I/O 대기의 사이클을 반복한다.CPU 스케줄러CPU가 유휴 상태가 될 때마다, 운영체제는 준비 큐에 있는 프로스세 중에서 하나를 선택해 실행해야 한다. 선택 절차는 CPU 스케줄러에 의해 수행된다. 스케줄러는 실행 준비가 되어 있는 메모리 내의 프로세스 중에서 선택하여, 이들 중 하나에게.. 2024. 10. 24.
스위치 근거리 네트워크 스위치 근거리 네트워크스위치링크 계층에서 동작한다.링크 계층 프레임을 교환하고, 네트워크 계층 주소를 인식하지 않음링크 계층 프레임을 전달하기 위해 IP 주소가 아닌 링크 계층 주소를 사용한다.링크 계층 주소체계와 ARP호스트와 라우터링크 계층 주소를 갖는다.네트워크 계층 주소도 갖는다.MAC 주소링크 계층 주소를 가진 것은 호스트나 라우터가 아닌 호스트나 라우터의 어댑터(네트워크 인터페이스)다. 링크 계층 스위치는 호스트나 라우터를 연결해주는 인터페이스에 링크 계층 주소를 할당받지 않음링크 계층 스위치는 호스트와 라우터간에 데이터그램을 전달하는 일을 할 뿐이다.링크 계층 주소는 MAC 주소(MAC address)라고 알려져 있다.랜 주소(LAN address), 물리 주소(physical address.. 2024. 10. 7.