면접 - 운영체제 14

개발자 면접 질문 - 문맥 교환(Context Switching)

1. Context Switching - 현재 진행하고 있는 프로세스, 쓰레드의 상태를 저장하고 다음 진행할 Task의 상태 값을 읽어 적용하는 과정 2. 필요성 - 다양한 사용자들이 동시에 사용하는 것처럼 하기 위해서는 CPU가 Task를 바꿔가며 실행해야 때문에 필요하다. 3. Context Switching 실행 방식 - 현재 실행하고 있는 Task의 PCB 정보를 저장한다. - 다음 실행할 Task의 PCB 정보를 읽어 Register에 적재하고 CPU가 이전에 진행했던 과정을 연속적으로 수행한다. * Task 정보는 Register에 저장되고 Process Control Block 으로 관리된다.

개발자 면접 질문 - 버퍼링과 스풀링 차이

1. 버퍼링 - 주기억 장치의 일부를 버퍼로 정해놓고 사용하는 방식 - 빠른 CPU와 속도가 느린 입출력 장치 사이에 효율을 높이기 위해 사용한다. - 입력시에는 CPU는 버퍼의 내용을 가져다 쓴다. - 입력 장치는 버퍼에 내용을 기록한다. - 출력시에는 CPU는 연산된 결과를 버퍼에 기록한다. - 출력 준비가 되면 출력 장치는 버퍼의 내용을 꺼내 출력한다. 2. 스풀링 - 디스크의 일부를 스풀 공간이라고 부르는 매우 큰 버퍼처럼 사용하는 방식 * 두 방법 모두 CPU의 처리 속도와 입출력 장치의 속도 차이를 보완하기 위한 방법이다.

개발자 면접 질문 - 스케쥴링 정의

1. 스케줄링 - 스케쥴링은 처리율과 CPU 이용률을 증가시키고, 오버헤드/응답시간/반환시간/대기시간을 최소화 시키는 기법 - 프로세스 스케줄링 : CPU를 사용하려고 하는 프로세스들 사이에 우선 순위를 관리하는 것 - 디스크 스케줄링 : 디스크를 사용하려고 하는 프로세스들 사이에 우선 순위를 관리하는 것 2. 스케줄링 방식 1) 선점형 : (실행->대기), (실행->준비), (대기->준비), (수행->종료) 모든 상태 변화에서 적용된다. - 하나의 프로세스가 CPU를 할당 받아 실행하고 있을 때 우선 순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있다. - 모든 프로세스에게 CPU 사용 시간을 동일하게 부여할 수 있어 빠른 응답을 요하는 대화식 시분할 시스템에 적합하다. 2) 비선점형 ..

개발자 면접 질문 - 데드락(Dead Lock) 정의

1. 데드락(Dead Lock) - 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태 - 교착 상태라고 부르며 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생 2. 데드락(Dead Lock) 조건 - 상호배제 - 점유대기 - 비선점 - 순환대기 3. 데드락(Dead Lock) 처리 - 교착 상태 예방 및 회피 : 교착 상태를 예방하거나 회피하는 프로토콜을 이용한다. - 교착 상태 탐지 및 회복 : 교착 상태가 되도록 허용한 다음 회복시키는 방법 - 교착 상태 무시 : 교착 상태를 무시한다.