<os 구조>
os의 역할이 뭐야?
사용자가 컴퓨터의 물리적영역을 알지못해도 쉽게 이용할수 있는 환경을 제공하는 자원추상화
의 기능을 하며, 자원관리자의 기능도 한다.
자원공유가 뭐야?
컴퓨팅 시스템에서 CPU가 한개라고 가정하면 모든 프로세스는 1대밖에 없는 CPU를 공유한다. 때문에, CPU를 프로세스가 독점할수도 있고, 대기를 할 수 있는데 이러한 과정에서 프로세스 스케줄링을 필요로 한다
멀티프로그래밍 환경이란?
실행가능한 여러 프로세스들이 CPU를 서로 공유하는 환경.
시스템콜이 뭐야 ?
프로그래밍 언어(사용자영역)에서 지원하지않는 기능에 대해 운영체제의 루틴을 호출해 이용하는것
인터럽트가 뭐야 ?
주변장치와 커널이 통신하는 방식중 하나로, 주변장치가 자신에게 발생한 비동기적 이벤트를 커널에게 알리는 매커니즘
링커와 로더의 차이는?
링커는 컴파일러에의해 목적파일로 만들어진것을 실행파일로 만들어주고, 로더는 그 실행프로그램을 실행했을때 메모리에 얹어주는것을 의미함.
os구조에서 유저모드영역과 커널모드영역이 나눠져있는 이유?
user application이 중요한 운영체제 데이터에 접근하지 못하게 하기 위함이다.
os구조에서 Monolithic 과 Microkernel의 차이는?
Monolithic 구조는 os의 커널이 시스템상 필요한 모든 기능을 갖추고 있다. 고전 UNIX시스템에 해당한다.
Microkernel 구조에서 Kernel은 Memory 관리, Scheduling, 기본적인 IPC등 최소한의 가장 core한 부분만 담당을 하며, 나머지 처리는 모두 user 영역에서 모듈 형태로 개발하여 덧붙이는 방식이다.
<프로세스와 스레드>
프로세스와 프로그램의 차이가 뭐야?
프로그램은 현재 디스크에 존재하는상태이고 이 프로그램이 메인메모리에 올라와 CPU를통해 실행되는상태를 프로세스라고 한다.
프로세스와 스레드의 차이는?
프로세스는 운영체제로부터 자원을 할당받는 작업의 단위이고
쓰레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위이다.
프로세스간 통신방법 종류는?
파이프, 메세지큐, 공유메모리 등
멀티쓰레드환경에서 한쓰레드가 blocked 되면 어떠한 상황이 벌어질까?
쓰레드는 같은 프로세스안에 존재하므로 다른쓰레드도 영향을 받음
멀티쓰레드의 장점이 뭐야?
한 프로세스안에서 여러쓰레드를 동시실행하면 응답성이 좋아지고 멀티프로세스처럼 고유의 메모리영역
을 가지는게아닌, 스택을 제외한 자원을 공유하기에 가볍고, 경제성이 좋다.
데드락(deadlock)이 뭐야?
어느것도 실행할 수 없는 교착상태
데드락의 4대 조건?
상호배제, 점유와 대기, 비선점, 환형대기
concurrency와 parallelism 차이가 뭐야?
parallelism 은 cpu여러개로 동시에 프로세스들 돌리는것, concurrency는 하나의 cpu로 프로세스를
돌리는것(스케줄링 등)
cpu 스케쥴링이 필요한 이유가 뭐야?
멀티프로그래밍 환경에서 여러프로세스들간의 자원공유를 가능하게 한다.
cpu 스케쥴링의 기준은?
cpu의 활용도, 처리량, 소요시간, 대기시간 등
선점형과 비선점형의 차이는?
선점형은 프로세스가 실행되는도중에 CPU를 빼앗는것이 가능. 비선점은 불가능
cpu스케쥴링 알고리즘에는 어떤것들이있어?
Dispatcher의 역할이 뭐야?
스케줄러가 다음 프로세스를 골라준다면, dispatcher는 실질적으로 CPU에 올려주는 역할을 한다.
<메모리>
댕글링 포인터가뭐야?
동적할당과정에서 메모리가 해제된곳을 가리키고있는 포인터 --> 이를 방지하기 위해 메모리 해제이후 반드시 포
인터변수에 NULL로 초기화를 해준다.
fregmentation(단편화) 이 뭐야?
메모리 할당에서 프로그램의 크기보다 분할의 크기가 작은경우 외부단편화(외부에서 못들어온다)가,
분할의 크기가 프로그램의 크기보다 큰경우 내부단편화(내부에서 낭비가 발생한다)가 이루어진다.
페이징이란?
프로세스의 주소공간을 동일한 사이즈의 페이지단위로 나누어 물리적메모리에 불연속적으로 저장하는 방식
가상메모리란?
프로세스 전체가 메모리에 적재되지 않고도 실행이 가능 하도록 하는 기법.
요구페이징이뭐야?
프로세스의 실행시 프로세스를 구성하는 모든 페이지를 메모리에 올리는것이 아닌, 필요한 부분만
올리는 것
페이지 부재가 뭐야?
CPU가 참조하려는 페이지가 현재 메모리에 올라와있지 않은 상태-->페이지 교체 필요
locality란?
CPU가 메모리내의 정보를 균일하게 참조하는것이 아닌,최근에 참조된 페이지가 가까운 미래에 참조될 가능성
이 높은것을 의미한다.
쓰레싱이란?
페이지 부재율이 높아, CPU의 이용률(성능)이 저하되는 현상
워킹셋알고리즘이란?
페이지 부재가 발생함에 따라 페이지 수를 늘렸다가, 적게 발생하면 적게 할당하는 일종의 동적인 프레임 할당이다.
셤공부하면서 머릿속에 든거 정리한거...