<Interview> 5. 운영체제 정리
by BFine반응형
1. 운영체제
- Operation System 란 하드웨어를 관리하면서 동시에 여러 어플리케이션들이 작동할 수 있는 환경을 제공해주는 소프트웨어(인터페이스 역할<->사용자)
- 메모리 자원할당, 프로세스, 입출력 등 관리한다. (커널은 운영체제의 주요 부분을 담당한다.)
- 구성 : 프로세스,메모리, 장치, 파일 관리자
- 유형 : 일괄처리(batch), 대화형(시분할), 실시간, 하이브리드
- 멀티프로그래밍 : cpu를 사용 중인 작업이 입출력 작업을 완료하기위해 대기하는 동안 다른 작업이 cpu를 사용
2. 프로세스 & 스레드
- 운영체제에 의해 메모리에 로드된 프로그램중 현재 실행중인 프로그램을 말한다.
- 프로세스에는 실행을 위한 컴퓨터자원(CPU, 주기억장치, 파일, 입출력 장치 등)
- 5가지 상태 : 생성 준비 실행 대기 종료 (준비->실행을 디스패치라고 한다)
- PCB : 프로세스 정보를 보관 (상태, 번호, 카운터(다음 명령의 주소), 레지스터, 메모리)
- 이 프로세스의 작업 단위를 스레드라고 하고 여러개 스레드를 가질 수 있는데 이를 멀티스레드라고 한다.
3. 데드락
- 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다.
- 두개의 프로세스가 각각 A,B 자원을 사용하면서 B,A 요청하면 이미 사용중이기 때문에 무한정 기다리는 데드락 현상이 발생한다.
- 상호배제(1자원-1프로세스), 점유대기(가지고 기다림), 비선점(새치기X), 순환대기 의 조건을 성립하면 데드락이 발생한다.
4. CPU 스케줄러
- CPU는 제어장치와 연산장치(ALU)로 구성되어있다. 사칙연산은 연산장치, 주변장치와 상호작용은 제어장치가 담당한다.
- FCFS(먼저온거 먼저), SJF(짧은거 먼저), RR(사이좋게 기준시간동안)
5. Fragmentation & Paging
- 단편화는 프로세스들이 RAM 메모리에 할당될때 남는 공간이 여러군데 발생해 사용을 못하는 것을 말한다.
- 외부단편화는 합치면 할당이 되는데 조각나있어 사용을 못하는 것 , 내부단편화는 메모리가 프로세스보다 크게 할당되어 남아 도는 것이다
- LRU(가장 사용안된거), OPT(예측), FIFO
6. 커널레벨스레드, 유저레벨스레드
- 커널이 스레드를 지원하지 않는 경우 라이브러리 형태로 스레드를 구현한 것이 유저레벨스레드
- 유저레벨스레드는 하나에 프로세스에 스레드 A,B가 있을떄 A 처리중에 문제가 생길경우 다른 프로세스로 전환되는 단점이 있다.
- 커널레벨스레드는 속도가 비교적 느린데 그이유는 커널에서 스레드간 컨텍스트 스위칭이 발생할때 모드 전환이 발생한다.
- 유저모드일경우 커널영역에 접근 할 수 없다.(커널모드는 둘 다 가능)
7. 스케쥴링
- 여러가지 작업이 있을때 처리 순서를 결정하는 것을 의미한다.
- 목표 : 처리량, 반환시간 최소, CPU 극대화 등
가. 스케줄링 정책
- 선점 : 진행 프로세스에 인터럽트를 걸고 다른 프로세스에 CPU를 할당
- 비선점 : 자체가 인터럽트를 걸거나 작업이 종료할때까지 할당
8. 인터럽트
- 외부, 내부적인 문제가 발생했을 경우나 제어권을 가져오고 싶을때 하는 명령
- 인터럽트가 발생하면 실행중인 작업을 중단하고 프로세스 상태 저장 -> 인터럽트 처리 -> 복귀
9. IPC
- 프로세스간 통신 방법을 의미하고 종류로는 PIPE, SOCKET, MQ 등이 있다.
10. 동기화
- 멀티스레드 환경에선 공유자원을 이용해 작업을 수행하는 경우가 있다.
- 자원을 공유하는 영역 (임계영역, 코드블록)이 있다면 작업이 종료될때까지 다른 스레드에게 뺏기지 않는(비선점) 것이 필요하다.
- 이를 동기화 라하고 공유된 자원에 접근할때 한번에 하나의 스레드만 접근할 수 있도록 잠금을 걸어 데이터의 일관성 을 유지하는 것이다.
가. 세마포어
- P,V 명령을 이용해서 프로세스의 임계영역 접근을 제어한다.
나. 뮤텍스
참고 & 출처
반응형
'공부(2018~2019) - 스킨변경전 > Interview' 카테고리의 다른 글
<Interview> 7. 데이터베이스 정리 (0) | 2019.05.14 |
---|---|
<Interview> 6. 기타 정리 (0) | 2019.03.25 |
<Interview> 4. 자료구조 정리 (0) | 2019.03.05 |
<Interview> 3. 네트워크 정리 (0) | 2019.03.04 |
<Interview> 2. Spring 정리 (0) | 2019.03.04 |
블로그의 정보
57개월 BackEnd
BFine