운영체제
-
뮤텍스 락운영체제/프로세스 동기화 2018. 2. 4. 00:32
임계 구역 문제에 대한 하드웨어 기반 해결책은 복잡하고, 응용 프로그래머는 사용할 수 없다.이때문에 소프트웨어 기반 해결책들이 사용되는데 이 중 가장 간단한 것이 뮤텍스 락이다.뮤텍스 락을 사용하게 되면 프로세스가 임계 구역에 들어가기 전 반드시 락을 획득해야 하고임계 구역을 빠져나올 때 락을 반환해야 한다. 뮤텍스 락을 이용한 임계 구역 문제 해결 방안 do { acquire() // 락을 획득 // 임계 구역 release() // 락을 반환 // 나머지 구역 } while (true); acquire() { while (!available) //바쁜 대기 available = false; } release() { available = true; } 뮤텍스 락은 available 이라는 boolean..
-
동기화 하드웨어운영체제/프로세스 동기화 2018. 2. 4. 00:25
많은 현대 기기들은 인터럽트 되지 않는 하드웨어 명령어를 제공한다. TestAndSet 명령어를 사용한 상호 배제 구현 do { while(TestAndSet(&lock)) //아무 일도 안함. // 임계 구역 lock = FALSE; // 나머지 구역 } while(TRUE) 제일 처음에는 lock은 FALSE값으로 초기화되어 있다. 따라서, 처음으로 실행한 프로세스는 첫 while문을 통과한다. 그리고, TestAndSet에의해서 lock은 TRUE가 되었으므로, 다른 프로세스가 임계 영역을 실행하려고 해도, while문에서 걸려서 실행할 수 없다. 상호 배제 조건을 만족하는 셈이다. 그리고 임계 영역을 다 끝낸 프로세스는 lock값을 다시 FALSE로 되돌려서 다른 프로세스도 임계 영역을 실행할 수..
-
피터슨의 해결안운영체제/프로세스 동기화 2018. 2. 4. 00:12
임계 구역에 대한 고전적인 소프트웨어 기반 해결책 임계구역 문제를 해결하기 위한 좋은 알고리즘적 설명을 제공한다. 피터슨의 해결안은 두 프로세스가 두 개의 데이터 항목을 공유하도록 하여 해결한다. Int turn; - 임계구역으로 진입할 순번을 나타냄 Turn == i 이면 프로세스 Pi가 임계구역에서 실행됨 Boolean flag[2]; - 프로세스가 임계구역으로 진입할 준비가 되었다는 것을 나타냄 Flag[i] == true 이면 Pi 가 임계구역으로 진입할 준비가 되었다는 것을 나타낸다. 프로세스 Pi의 구조 do { Flag[i] = TRUE; turn = j; while (flag[j] && turn == j ); // 임계구역 flag[i] = FALSE; // 나머지 구역 } while (T..
-
임계구역 문제운영체제/프로세스 동기화 2018. 2. 3. 19:24
둘 이상의 프로세스들이 동시에 접근해서는 안 되는 공유 자원을 임계구역 이라고 하고임계구역으로 지정되어야 할 코드 영역이 임계구역으로 지정되지 않았을 때 발생하는 문제를 상호 배제 문제 라고 한다. 임계구역 문제 해결안의 조건상호 배제하나의 프로세스가 임계구역에 들어가 있다면 다른 프로세스는 임계구역에 들어갈 수 없어야 한다. 진행임계 구역에 들어간 프로세스가 없는 상태에서 들어가고자 하는 프로세스가 여러 개 있다면 어느 것이 들어갈지를 적절히 결정 해 주어야 한다. 한정된 대기다른 프로세스들의 기아를 방지하기 위하여 한 번 임계구역에 들어간 프로세스는 다음 번 임계구역에 들어갈 때 제한을 두어야 한다. 선점형 커널프로세스가 커널모드에서 수행되는 동안 선점되는 것을 허용하는 커널 장점응답이 민첩할 수 있..
-
알고리즘의 평가운영체제/CPU 스케줄링 2018. 2. 3. 18:26
특정 시스템을 위한 알고리즘을 선택하는 기준 결정론적 모델링사전에 정의된 특정한 작업 부하를 받아들여 그 작업 부하에 대한 각 알고리즘의 성능을 정의하고 각 알고리즘에 대해 최소의 평균 대기시간을 계산한다.결정론적 모델링은 단순하고 빠르지만 입력으로 정확한 숫자를 요구하고 평가 결과도 이들 입력값에만 적용 시킬 수 있다. 큐잉 모델프로세스의 도착 시간, CPU와 입출력 버스트 들을 확률적인 분포로 기술하고 이들 분포로부터 평균 처리량, 이용률, 대기 시간들을 계산한다.시스템이 안정적이라면 큐를 떠나는 프로세스의 수는 도착하는 프로세스의 수와 같아야 한다. 모의 실험컴퓨터 시스템 모델을 프로그래밍한다. 구현실제 운영 환경 하에서 평가를 위하여 시스템에 실제 알고리즘을 삽입하여 실행높은 비용과 위험성이 요구됨
-
실시간 CPU 스케줄링운영체제/CPU 스케줄링 2018. 2. 3. 18:23
실시간 운영체제에서 CPU를 스케줄링 할 때에는 특별한 쟁점을 고려해야 한다.일반적으로 연성 실시간 시스템과 경성 실시간 시스템으로 구분한다. 연성 실시간 시스템 : 중요한 실시간 프로세스가 스케줄 되는 시점에 관해 아무런 보장을 하지 않는다.경성 실시간 시스템 : 태스크는 반드시 마감시간까지 서비스를 받아야 하며 마감 시간이 지난 이후에 서비스를 받는 것은 서비스를 전혀 받지 않는 것과 동일한 결과를 낳는다. 지연 시간 최소화사건 지연 시간은 사건이 발생해서 그에 맞는 서비스가 수행될 때까지의 시간을 말한다.인터럽트 지연시간은 CPU에 인터럽트가 발생한 시점부터 해당 인터럽트 처리 루틴이 시작하기까지의 시간을 말한다.디스패치 지연시간은 현재 프로세스가 CPU에서 물러나고 다른 프로세스를 스케줄 하는 시..
-
다중 처리기 스케줄링운영체제/CPU 스케줄링 2018. 2. 3. 18:20
여러 개의 CPU가 있는 다중 처리기에서 스케줄링은 더욱 복잡해지지만 부하 공유가 가능해진다. 다중 처리기 스케줄링에 대한 접근 방법하나의 처리기가 모든 스케줄링 결정과 입출력 처리 그리고 다른 시스템의 활동을 취급하게 하는 것을 비대칭 다중 처리라고 한다.비대칭 다중 처리는 자료 공유의 필요성을 배제하기 때문에 간단하다.대칭 다중처리 에서는 각 처리기가 독자적으로 스케줄링 하며 스케줄링은 각 처리기의 스케줄러가 준비 완료 큐를 검사하여 실행할 프로세스를 선택한다. 처리기 친화성대칭 다중처리 시스템은 한 처리기에서 다른 처리기로의 이주를 피하고 같은 처리기에서 프로세스를 실행시키려고 한다. 이 현상을 처리기 친화성이라고 한다. 약한 친화성 : 운영체제가 동일한 처리기에서 프로세스를 실행하려고 노력하는 정..
-