운영체제 13

개발자 면접 질문 - 페이지 교체 알고리즘

1. FIFO (First In First Out) - 페이지가 주기억장치에 적재된 시간을 기준으로 교체될 페이지를 선정하는 기법 - 단점 : 중요한 페이지가 오랫동안 있었다는 이유만으로 교체되는 불합리 2. LFU (Least Frequently Used) - 주기억장치에 적재되어 있는 페이지들이 참조된 횟수를 기준으로 교체할 페이지를 선정하는 기법 - 단점 : 참조될 가능성이 많아도 횟수에 의한 방법이므로 최근에 사용된 프로그램을 교체 시킬 가능성이 있다. 3. LRU(Least Recently Used) - 최근에 가장 오랫동안 참조되지 않은 페이지를 교체하는 기법 - 단점 : 프로세스가 주기억장치에 접근할 때마다 참조된 페이지에 대한 시간을 기록해야함

개발자 면접 질문 - 멀티 프로세스와 멀티 쓰레드 차이

1. 멀티 프로세스 - 하나의 응용 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하는 것 - 여러 개의 자식 프로세스 중 하나에 문제가 발생하면 그 자식 프로세스만 죽어 다른 영향이 확산되지 않음 2. 멀티 쓰레드 - 하나의 응용 프로그램을 여러 개의 쓰레드로 구성하고 각 쓰레드가 하나의 작업을 처리하는 것 - 시스템 자원 소모 감소 - 시스템 처리량 증가 - 다른 프로세스에서 쓰레드를 제어할 수 없다. * 멀티 프로세스 대신 멀티 쓰레드를 사용하는 이유 - 자원의 효율성 증대 : 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어서 자원 관리가 효율적 - 처리 비용 감소 및 응답 시간 단축 : 프로세스 간의 통신 보다 쓰레드 간의 통신 비용이 적다.

개발자 면접 질문 - 프로세스와 쓰레드의 차이

1. 프로세스 - OS가 메모리 등의 자원을 할당해 준 실행중인 프로그램 - 프로세스는 메모리 영역을 공유하지 않고 각각 독립적으로 사용 2. 쓰레드 - 프로세스 내에서 프로세스의 자원을 갖고 실제로 일하는 일꾼 - 프로세스 내에서 실행되는 여러 흐름의 단위 - 스택 영역은 독립적으로 사용하며 메서드 영역, 힙 영역은 공유한다.