면접용 운영체제 정리-1
내용은 혼공운영체제 책+강의 정리
*운영체제: 운영체제는 하드웨어 자원을 관리하고, 응용 프로그램과 하드웨어 사이를 중재하는 인터페이스를 의미합니다.
*커널: 커널은 os의 모든 부분에 대한 기본 서비스를 제공하는 컴퓨터 운영 체제의 핵심부분입니다.근데 커널이 아닌것도 있는데 그중 하나가 사용자 인터페이스를 말합니다
*문맥교환: cpu가 여러 프로세스를 처리해야하는 상황에서 현재 실행중인 프로세스의 정보들을 pcb에 저장하고 다른 프로세스 pcb 정보를 불러와서 다른 프로세스 실행하는걸 문맥교환이라 합니다.
*PCB(프로세스 제어블록): 각각의 프로세스에 대한 중요 정보를 저장하고 있는 운영체제 자료구조라 합니다.
PCB에는 프로세스id,프로그램 카운터,프로세스상태,cpu스케줄링정보,메모리관리정보,입출력상태정보등이 있습니다.
*프로세스 상태: 생성,준비,실행,대기,종료 상태가 있다
*프로세스: 프로세스는 실행중인 프로그램을 말하며,자원을 공유하지 않고 최소 1개의 쓰레드를 가지고 있습니다.
자원을 공유하지 않는다했지만 무조건 그런건 아니고 공유하는 방법도 있습니다.(파이프,네트워크 소켓,공유메모리등)
*스레드: 프로세스에서 실행되는 실행 흐름의 단위이며 프로세스의 자원을 공유하고
각각의 스레드에는 각기 다른 스레드id,프로그램 카운터,레지스터,스택이 있습니다
*멀티 프로세스: 여러 프로세스를 동시에 실행하는 것을 멀티프로세스라 하고,하나의 프로세스에 문제 생겨도 다른 프로세스에 영향 안끼치는 점이 좋지만 많은 메모리 공간과 cpu시간 차지하는 단점이 있다.
*멀티 쓰레드: 하나의 프로세스를 여러 개의 쓰레드로 구성해 작업을 수행하는것이고,멀티 프로세스보다 적은 메모리공간,문맥교환이 빠른 장점이 있으나 하나의 쓰레드에 문제 생기면 전체 쓰레드에 영향받는 단점도 있습니다.
*CPU스케줄링: 운영체제가 프로세스한테 공정하고 합리적으로 CPU 자원을 배분하는방법을 말합니다.
*선점형,비선점형: 현재 실행중인 프로세스 자원을 빼앗을 수 있는 스케줄링이고 비선점은 반대로 빼앗을수 없는 스케줄링
*cpu스케줄링 알고리즘 종류: 선입선처리,최단작업 우선,라운드 로빈,최소 잔여시간 우선(타임슬라이스), 우선순위,다단계 큐,다단계 피드백 큐가 있습니다.
*기아:우선순위 높은 프로세스만 실행해서 낮은 우선순위 프로세스는 계속 실행 못하는 상황
*에이징:우선순위가 높은 프로세스만 cpu사용하면 우선순위가 낮은 프로세스는 사용못하는데 이때 시간에 비례해 낮은 우선순위 프로세스도 한단계씩 올라가면서 cpu자원 할당 받을 수 있게 하는 방법
*동기화: 프로세스들의 실행 순서와 자원의 일관성을 유지하는것
*실행 순서 제어: 프로세스를 올바른 순서로 실행
*상호 배제: 공유가 불가능한 자원을 동시 사용 피하기 위해 사용하는 알고리즘
*임계 구역: 동시에 실행하면 문제가 발생할 수있는 공유 자원에 접근하는 코드 영역
*레이스 컨디션: 임계 구역을 동시에 실행하여 자원의 일관성이 깨지는 현상
*뮤텍스: 오직 1개만의 프로세스만 자원 접근 할수 있고 자원을 이용중일땐 락을 걸어서 다른 프로세스 접근 못하게하고 끝나면 언락을 하는 동기화 기법
(뮤텍스랑 세마포는 바쁜대기 busy wait문제점이 있다. 세마포는 대기큐 이용해서 이를 해결하기도한다)
*세마포: 이진은 뮤텍스랑 동일하다 볼수 있고 카운팅 세마포어는 여러 공유자원을 자원개수변수,wait,signal함수로
자원 사용 제어하는 동기화 기법
*모니터: 모니터 안에는 하나의 프로세스만 올수있고,세마포어보다 구현하기 쉽고 세마포어 에서 일어나는 실수를 줄일 수 있게된 동기화기법을 말합니다.
*교착상태(데드락): 두 개 이상의 프로세스가 서로 자원을 기다리면서 무한히 대기하는 상태를 의미합니다
*교착상태 발생 조건: 상호 배제,점유 대기,비선점,원형 대기 모두 만족했을때
*교착상태 해결 방법: 예방,회피,검출후회복 하는 방법이 있습니다.
-예방: 발생조건 중 한개라도 만족 안하게하기
-회피: 교착상태 발생 하지 않을 정도로 조심히 자원 할당하기
-검출후회복: 교착상태 발생하고 이후에 해결하는 방식(선점을 통한 회복,프로세스 강제종료를 통한 회복)