2022 라인 신입 공채가 떠서 이를 대비하기 위한 기술면접 질문 및 필기테스트 대비를 오늘부터 시작하고자 합니다.먼저 운영체제를 정리하고자 합니다.
면접 질문들을 잘 다루어주시는 유튜버분이 계셔서 강의를 들으며 정리하였습니다.
면접관이 운영체제가 무엇인지에 대해 물어본다면 아래와 같이 답변합니다.
운영체제는 시스템의 자원과 동작을 관리하는 소프트웨어입니다. 프로세스, 저장장치, 네트워킹, 사용자, 그리고 하드웨어등을 관리하게 됩니다.*
비선점 스케줄링
FCFS : 먼저 들어온 프로세스를 먼저 처리하는 방식
SJF : 가장 짧은 프로세스를 먼저 처리하는 방식이며 평균 대기시간을 줄이기 위한 방법입니다.
단 SJF의 경우, 짧은 프로세스가 계속해서 들어와 작업시간이 긴 프로세스가 무한대로 대기하는 현상이 발생할 수 있어 기아상태가 발생할 수 있습니다.
선점 스케줄링
선점 스케줄링은 실행중인 프로세스를 가로챌 수 있습니다.
SRF(Shortest Remaining Time First) : 남은 작업 시간이 가장 짧은 프로세스를 먼저 처리하는 방식입니다.
RR(Round Robin) : 모든 프로세스가 같은 우선순위를 가지고 Time Quantum만큼의 시간동안 번갈아가며 진행합니다. 단 Time Quantum이 매우 큰경우, FCFS와 다를바가 없어지게되고
Time Quantum이 매우 작다면, 불필요한 Context Switching이 매우 많이 일어나게 되어 비용이 발생하게 됩니다.(시간이 걸림) 따라서 옮기는 비용이 더 커질 수 있기 때문에 적절한 Time Quantum 선정이 필요합니다.
Priority Scheduling(우선순위 스케줄링) : 우선순위에 따라 스케줄링 하는 방법입니다.
사용하는 부분만 메모리에 올리고 나머지는 디스크에 보관하는 것
CPU에서 어떤 게임을 실행한다고 했을때 하드디스크에서 게임을 메모리에 올려야 실행이 가능합니다.
예를들어 4기가의 RAM을 사용하고 여러가지의 게임을 실행하여 게임의 용량이 4기가를 넘어간다고 했을때 실행이 되는 이유는 사용하는 부분만 메모리에 올리기 때문입니다.
가상메모리란 실행중인 모든 프로세스에 메모리를 할당하기에는 메모리의 크기에 한계가 있어 사용하는 방법으로 사용하는 부분만 메모리에 올리고 나머지는 디스크에 보관하는 기법입니다.
프로세스가 자원을 얻지 못해 다음 작업을 하지 못하는 상태로 데드락의 필요충분 조건에는 4가지의 조건이 존재합니다.
Mutual Exclusion : 하나의 자원은 하나의 프로세스만 사용할 수 있어야한다.
Hold and Wait : 최소 하나의 자원을 가지고 있으면서 다른 프로세스가 사용중인 자원을 사용하기 위해 대기하는 프로세스가 있어야 한다.
Circular Wait : 자원을 기다리는 프로세스간 사이클이 형성되어야 함
비선점
Prevention(예방) : 4가지 필요조건중 어느 하나가 만족되지 않도록 하는 것
Avoid(회피) : 자원을 할당했을 때 데드락이 발생할 가능성이 존재한다면 자원을 배분해주지 않는 것, 대표적으로 Banker 알고리즘 존재
Detect(탐지) and Recovery(회복) : 데드락이 발생한 이후에 이를 처리하는 방법
운영체제란?
CPU스케줄링 이란?
가상메모리란?
데드락이란?
자바 코드 실행과정