본문 바로가기

운영체제 컨셉5

7장 동기화 예제 연습문제 공룡책 (Operating System Concepts) 10th 개인적인 생각이므로 틀린 답변일 수 있습니다. 7.1 Windows와 Linux가 여러 락 기법을 구현하는 이유를 설명하라. 그들이 스핀락, mutex 락, 세마포 및 조건 변수를 사용하는 환경을 설명하라. 각각의 경우 그 기법이 필요한 이유를 설명하라 락 기법에는 각각의 장 단점이 있기 때문에 상황에 따라 여러 락 기법을 사용할 수 있도록 한다. 스핀락은 오버헤드가 적으나 busy-wait 을 하기 때문에 사용 시간이 짧은 자원에 대해 효과적입니다. mutex 락은 하나의 쓰레드만 접근할 수 있도록 할 때 사용합니다. 세마포 및 조건 변수는 자원을 장기간 보유해야 하는 경우 유용합니다. 7.2 Windows는 슬림 reader-write.. 2023. 5. 23.
6장 동기화 도구들 연습문제 공룡책 (Operating System Concepts) 10th 개인적인 생각이므로 틀린 답변일 수 있습니다. 6.1 6.4절(동기화를 위한 하드웨어 지원 - Hardware support for synchronization)에서 인터럽트를 자주 비활성화하면 시스템 클록에 영향을 줄 수 있다고 언급했다. 왜 이런 일이 발생할 수 있고 그러한 영향을 최소화할 수 있는 방법에 대해 설명하라. 일단 6.4절이 아니다. 6.2절이다. 이거 찾느라 한참 걸렸다. (번역 오류가 아니다 원본에서 잘못 적은 것이다.) 문제에서 가리키는 부분은 다음과 같은 내용이다. 다중 처리기에서 인터럽트를 비활성화하면 시간이 많이 걸릴 수 있다. 이 메시지 전달은 각 임계구역으로의 진입을 지연시키고 시스템 효율성을 떨어뜨린다. 또.. 2023. 5. 16.
5장 CPU 스케줄링 연습문제 공룡책 (Operating System Concepts) 10th 개인적인 생각이므로 틀린 답변일 수 있습니다. 5.1 CPU 스케줄링 알고리즘은 스케줄 된 프로세스의 실행 순서를 결정한다. 하나의 프로세서에게 n개의 프로세스를 스케줄 하면 몇 개의 다른 스케줄이 가능한가? n에 대한 공식을 제시하라. n! = n x (n-1) x (n-2) x ... x 2 x 1 첫 프로세스를 선택하는 경우의 수 : n 두번째 프로세스를 선택하는 경우의 수 : n - 1 세번째 프로세스를 선택하는 경우의 수 : n - 2 … 이런식으로 쭉 이어나가면 위에 공식에 적은 것 처럼 n 팩토리얼 이 된다. 5.2 선점 스케줄링과 비선점 스케줄링의 차의점을 설명하라. 선점 스케줄링 : 현재 실행 중인 프로세스를 상황에 따라 .. 2023. 5. 16.
4장 스레드와 병행성 연습문제 공룡책 (Operating System Concepts) 10th 개인적인 생각이므로 틀린 답변일 수 있습니다. 4.1 다중 스레딩이 단일 스레드 솔루션보다 더 나은 성능을 제공하는 세 가지 프로그래밍 예시를 제시하라. 병렬로 나눠서 동일한 작업을 동시에 처리하기에 용이할 경우 (ex. 웹 서버, 연산처리) 병렬로 나눠서 여러 작업을 처리하기에 용이할 경우 (ex. 화면 gui) 4.2 Amdahl의 법칙을 이용하여 (a) 2개의 처리 코어와 (b) 4개의 처리 코어에 대해 60%의 병렬 구성요소를 가진 응용 프로그램의 속도 향상 이득을 계산하라. a : 1 / (0.4 + 0.6 / 2) = 1.42857143 배 b : 1 / (0.4 + 0.6 / 4) = 1.81818182 배 4.3 4.1절에 .. 2023. 5. 9.
3장 프로세스 연습문제 공룡책 (Operating System Concepts) 10th 개인적인 생각이므로 틀린 답변일 수 있습니다. 3.1 아래 표시된 프로그램을 이용하여 LINE A에서 출력되는 내용을 설명하라. #include #include #include int value = 5; int main() { pid_t pid; pid = fork(); if (pid == 0) { /* child process */ value += 15; return 0; } else if (pid > 0) { /* parent process */ wait(NULL); printf("PARENT: value = %d", value); /* LINE A */ return 0; } } 20 3.2 최초의 부모 프로세스를 포함하여 아래에 표시.. 2023. 5. 9.