일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- http 개념
- 자바
- 백준
- golang
- flask
- 12761번 돌다리
- 백준 사이트
- 자바 디자인패턴
- 파이썬
- 백준 12761
- 트리 순회
- String 함수
- 12761 돌다리
- 고 배열
- MongoDB Realm
- 하둡
- 정렬
- hadoop
- 백준 12761번
- 백준 파이썬
- 도메인 주도 개발
- 몽고디비 렘
- domain driven develop
- golang struct
- go
- 도메인 주도 개발 시작하기
- http 완벽가이드
- ddd
- 우분투
- 자바 디자인 패턴
- Today
- Total
개발바닥
[ 기술면접 / 운영체제 ] OS 용어 정리 & 프로세스 본문
운영체제(Operation System) 란?
컴퓨터의 하드웨어를 관리하면서 하드웨어를 손쉽게 그리고 효율적으로 사용할 수 있는 abstraction을 제공하는 점을 알 수 있다. 예를 들면 CPU라는 하드웨어는 processs가 관리를 하고, Memory는 address space가 Disk는 file이 관리한다고 볼 수 있을 것이다. 또한 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중요한 역할을 하는 것을 생각할 수 있는데, 운영체제는 자원의 공유 및 분배를 위한 policy를 제공한다.
1. OS 용어 정리
용어 | 설명 |
프로그램 | 컴퓨터를 실행시키기 위한 일련의 순차적으로 작성된 명령어의 모음. 컴퓨터 시스템의 disk와 같은 secondary storage에 바이너리 형태로 저장되어 있다. |
프로세스 | 메모리에 올라와 실행되고 있는 프로그램의 작업 단위 (Program counter,stack,data section 등을 포함하고 있다.) |
쓰레드 | 프로세스의 작업 단위 |
API | 응용 프로그램이 자신과 연관된 프로그램을 만들 수 있도록 제공하는 인터페이스 |
시스템 호출 | 응용 프로그램이 컴퓨터 자원에 직접 접근하는 것을 막기 위해, 커널이 응용 프로그램에게 제공하는 함수 |
드라이버 | 커널과 하드웨어의 인터페이스 |
버퍼 | 장치 간 속도 차이를 완화하기 위해, 입출력 시 전송되는 데이터를 일시적으로 저장하는 임시 저장소 |
캐시 | 메모리와 CPU 간 속도 차이를 완화하기 위해, 메모리의 데이터를 미리 가져와 저장해두는 임시 저장소 |
인터럽트 | 입출력 관리자가 CPU에 보내는 완료 신호 |
2. 프로세스
프로세스(Process) 란?
- 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 (독립적인 개체)
- 운영체제로부터 시스템 자원을 할당받는 작업의 단위
- 즉, 동적인 개념으로는 실행된 프로그램을 의미한다.
- 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다.
- 프로세스는 각각 독립된 메모리 영역 ( Code, Data, Stack, Heap의 구조)을 할당 받는다.
프로세스 상태
- New : 메모리에 프로세스가 올라감 PCB 획득
- Ready : 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태 프로세스는 준비상태 큐(스케줄링 큐)에서 실행을 준비하고 있으며 접수 상태에서 준비 상태로의 전이는 Job 스케줄러에 의해 수행된다.
- Running : 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태이며 프로세스 수행이 완료되기 전에 프로세스에게 주어진 프로세서 할당 시간이 종료 되면 프로세스는 준비상태로 전환됩니다.
- Waiting : 프로세스에 입출력 처리가 필요하면 현재 실행중인 프로세스가 중단되고, 입출력 처리가 완료될때까지 대기하고 있는 상태입니다.
- Terminated : 작업이 완료됨 PCB가 사라진 상태
※ 프로세스 관련 용어
Dispatch : 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정
Timeout (Interrupt) : 주어진 타임 슬라이스 동안 수행 완료되지 않은 프로세스가 준비 상태로 돌아가는 것
Process Control Block : 프로세스 처리와 관련된 정보가 들어있는 블록
Event Wait (running -> waiting) : I/O 입출력 발생 (CPU 사용 중 I/O 행위가 필요하며 대기 상태로 이동)
Wake-Up (waiting ->ready) : I/O 요청이 완료되면 다시 ready 상태로 전이
'개인 공부 > 기술 면접' 카테고리의 다른 글
[ 기술면접 ] C & C++ 차이점 정리 (0) | 2020.04.09 |
---|---|
[ 기술면접 / 운영체제] 세마포어(Semaphore) & 뮤텍스(Mutex) (0) | 2020.03.27 |
[ 기술면접 / 데이터베이스 ] 동시성 제어( Concurrency Control ) (1) | 2020.03.18 |
[ 기술면접 / 데이터베이스 ] 트랜잭션 ( Transaction ) (0) | 2020.03.18 |
[ 기술면접 / 컴퓨터구조] 파이프 라이닝 (0) | 2020.03.16 |