본문 바로가기

728x90

운영체제

(4)
[개발자 면접] 페이징과 세그먼테이션이란? Q. 메모리 관리 기법과 페이징, 세그먼테이션에 대해서 설명? 다중 프로그램 시스템에서 여러 프로세스를 수용하기 위해 주기억 장치를동적 분할하는 메모리 관리작업이 필요하여 페이징, 세그먼테이션 기법을 사용한다. 메모리관리 기법은 연속메모리 일경우와 불연속 메모리인지에 따라 다른 기법을 쓴다. 먼저 연속메모리인 경우 프로그램 전체가 하나의 큰 공간에 연속적으로 할당되어야 하며, 고정 분할기법과 동적 분할기법 2가지로 사용된다. 고정 분할기법은 주기억장치가 고정된 파티션으로 분할되어 내부 단편화가 발생한다. 동적 분할기법은 파티션들이 동적생성되어 자신의 크기와 같은 파티션에 적재 되어 외부 단편화가 발생한다. 두번째로 불연속 메모리 관리는 프로그램의 일부가 서로 다른 주소 공간에 할당 될 수 있는 관리 기법..
[개발자 면접] 선점형 스케줄링과 비선점 스케줄링의 차이 Q. 선점형 스케줄링과 비선점형 스케줄링의 차이 선점형 스케줄링이란 실행중인 프로세스나 스레드를 강제로 중단시키고 다른 프로세스를 실행시키는 것이다. 비선점형 스케줄링은 그렇지 않은 것이다. 현대 운영체제는 선점형 스케줄링을 사용한다. 비선점형 스케줄링은 컨텍스트 스위칭이 적어 오버헤드가 적다는 장점이 있지만 간단한 작업에서 오래 기다릴 수도 있는 문제가 잇다. 예시) FCFS : 큐에 도착한 순서대로 실행시키는 비선점 스케줄링 기법 RR : 일정시간 간격으로 번갈아 사용하는 선점 스케줄링 기법, 기아 현상이 없다. 컨텍스트 스위칭 오버헤드가 크다.
[개발자 면접] 프로세스와 스레드의 차이점 Q. 프로세스와 스레드의 차이점은? 프로세스는 메모리 상에서 실행중인 프로그램을 말하며, 스레드는 이 프로세스 안에서 실행되는 흐름 단위를 말한다. 프로세스는 최소 하나의 스레드를 보유하고 있으며, 각각 별도의 주소공간을 독립적으로 할당 받는다.(code, heap, stack) 스레드는 이중에 stack만 따로 할당받고 나머지 영역은 스레드끼리 서로 공유한다. # 요약 프로세스 : 자신만의 고유 공간과 자원을 할당받아 사용 스레드 : 다른 스레드와 공간과 자원을 공유하면서 사용 Q. 프로세스의 문제점은? - 프로세스 생성에 큰 오버헤드가 있다. ( 프로세스를 생성할때 많은 시간이 소요됨0 - 프로세스 컨텍스트 스위칭의 비효율성, 오버헤드가큼 - 프로세스 사이에 통신이 어렵다는점 (IPC사용해야함) Q...
[개발자 면접] 사용자 모드와 커널 모드의 차이 Q. 사용자 주소 공간과 커널 주소공간에 대해서 분리하는 이유는? 운영체제는 컴퓨터 전체 메모리를 사용자 공간과 커널 공간으로 나누는데 사용자 공간은 응용프로그램이 탑재되고 사용되는 공간이며, 커널 공간은 디바이스 드라이버를 포함하여 커널 코드가 탑재된다. 커널 공간에 있는 코드와 데이터를 보호하기 위해 분리한다. # 커널 공간에 있는 코드와 데이터를 보호하기 위해 분리 Q. 사용자 모드, 커널 모드에 대해서 설명하면? 사용자모드 -> 응용프로그램 코드가 실행되고, 커널모드 -> 커널 코드가 실행된다. 둘을 나누어 데이터 접근에 어려운을 만드는 것. 응용프로그램에서 오류를 발생시키더라도 시스템을 중단시키는 수준은 발생하지 않게 막아줌. 모든 프로세스의 주소공간에서 사용자 공간은 분리되지만 커널 공간은 공..

728x90