취업일지

[CS]기술 면접 질문 리스트 - 운영체제

31daylee 2023. 12. 27. 05:29
728x90

 

 

운영체제


 

✔ 운영체제(OS)의 역할 4가지를 말하시오

  1. CPU 스케줄링과 프로세스 관리
  2. 메모리 관리
  3. 디스크 파일 관리
  4. I/O 디바이스 관리 

 

 

🗝 KEY WORD
 #CPU 스케줄링  # 프로세스  #메모리  #디스크 파일  #I/O 디바이스

 

 

 

 


✔ CPU에 대해 설명하시오.

Central Processing Unit 의 약어로 중앙처리장치를 뜻한다. 산술논리연산장치, 제어장치, 레지스터로 구성되어 있는 컴퓨터 장치다.
관리자의 역할을 하는 운영체제(OS)의 커널이 프로그램을 메모리에 올려 프로세스로 만들면 CPU가 이를 처리한다. 

* 제어장치 : 프로세스 조작을 지시하는 CPU 부품 / 입출력 장치 간 통신 제어 및 처리

* 레지스터 : CPU 안에 있는 매우 빠른 임시기억장치  

 

특징

  • 컴퓨팅 장치의 두뇌 역할
  • 메모리에서 명령을 가져와서 필요한 작업을 수행하고 출력을 다시 메모리로 내보낸다
  • 성능은 크게 클럭(Clock) 속도와 코어 수로 결정된다

 

🗝 KEY WORD
 # 중앙처리장치  # 산술논리연산  #명령 수행 및 출력

 

 

 

 

 


✔ DMA 컨트롤러

Direct Memory Access 의 약어로 직접 메모리 접근이란 의미를 가진다. I/O디바이스가 메모리에서 직접 접근할 수 있도록 하는 하드웨어 장치이다. CPU에만 너무 많은 인터럽트 요청이 들어오면 부하가 생기므로 이를 같이 부담하는 역할을 한다. 

* 인터럽트 : CPU가 프로세스를 실행하고 있을 때, 예외 상황이 발생하여 처리가 필요함을 CPU에게 알리는 것

https://ksk-developer.tistory.com/40

🗝 KEY WORD
 # 보조 장치  # 인터럽트 처리 역할

 

 

 

 


✔ 메모리 계층 구조에 대해 설명하시오

메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성되어 있다. 계층 위로 올라갈 수록 용량은 작아지고 속도도 빨라지지만 그만큼 가격이 비싸진다.

https://nayoungs.tistory.com/entry

 

 

특징

  • 레지스터 : CPU 안에 있는 작은 메모리 / 휘발성 
  • 캐시 : 데이터를 미리 복사해 놓는 임시 저장소 / L1, L2, L3 캐시가 있음 / 휘발성
  • 메모리(RAM) / 주기억장치 : 휘발성
  • 보조기억장치 : HDD(하드디스크) , SSD / 비휘발성

 

🗝 KEY WORD
 # 레지스터  # 캐시  # 메모리 # 보조기억장치 비휘발성

 

 

 

 


✔ 페이지 폴트(Page fault)와 스와핑(Swapping)에 대해 설명하시오

페이지 폴트란 프로세스의 주소 공간에는 존재하지만 지금 이 컴퓨터의  RAM에는 없는 데이터에 접근했을 경우 발생하는 것이다. 이 때, 마치 페이지 폴트가 일어나지 않은 것처럼 만드는 것을 스와핑이라고 한다. 스와핑은 메모리에서 당장 사용하지 않는 영역을 하드디스크로 옮기고 하드디스크의 일부분을 마치 메모리처럼 불러와 쓰는 것이다. 

 

 

🗝 KEY WORD
 # 페이지 폴트 RAM 없는 데이터 접근   # 스와핑 당장 필요하지 않은 프로세스 영역을 보조 저장

 

 

 

 


✔ 스레싱(Thrashing)에 대해 설명하시오

스레싱은 메모리의 페이지 폴트율이 높은 것을 의미하며, 곧 성능 저하를 초래하게 한다.

해결할 수 있는 방법으로 작업 세트와 PFF가 있다. 

 

 

<해결 방법>

  1. 작업 세트(Working Set) : 프로세스의 과거 사용 이력인 지역성을 통해 페이지 집합을 만들어서 미리 메모리에 로드하는 것
  2. PFF(Page Fault Frequency) : 페이지 폴트 빈도를 조절하는 방법. 상한선에 도달한다면 프레임을 늘리고 하한선인 경우 줄이는 방식으로 조절
🗝 KEY WORD
 # 보조 장치  # 인터럽트 처리 역할

 

 

 

 

 


✔ 페이지 교체 알고리즘에 대해 설명하시오

페이징 기법으로 메모리를 관리하는 운영체제에서 필요한 페이지가 주기억장치에 적재되지 않았을 시, 어떤 페이지 프레임을 선택해 교체할 것인지 결정하는 방법을 페이지 교체 알고리즘이라 한다. 

 

  • FIFO(First In First Out) : 가장 먼저 온 페이지를 교체 영역에 가장 먼저 놓은 방법
  • LRU(Least Recently Used)
    : 참조가 가장 오래된 페이지를 바꾸는 방법 
     프로그래밍 구현할 시, 해시 테이블과 이중 연결 리스트로 구현한다. 
  • LFU(Least Frequently Used)
    : 가장 참조 횟수가 적은 페이지를 교체하는 방법
  • Optimal : 앞으로 가장 오랫동안 사용되지 않을 페이지를 교체하는 방법 / 실제 프로그래밍에서는 구현 불가

 

 

🗝 KEY WORD
 # 페이지 교체 알고리즘  #FIFO  #LRU  #LFU

 

 

 

 

 


✔ 프로세스와 스레드의 차이에 대해 설명하시오

프로세스는 메모리에 올라와 실행되고 있는 프로그램의 인스턴스를 뜻한다. 
스레드는 프로세스 내에서 할당받은 자원을 이용해 동작하는 실행 단위를 말한다. 

프로세스 스레드
OS로 부터 독립된 메모리 영역을 할당 받는다 프로세스 내에서 Stack 만 따로 할당 받고, Heap, Data, Code 영역은 공유한다
통신을 위한 IPC를 사용해야 한다  프로세스의 자원을 공유하기 때문에 다른 스레드의 의한 결과를 즉시 알 수 있다
최소 1개의 스레드를 지니고 있다 프로세스 내에 존재한다

*IPC(Inter Process Communication)  : 프로세스끼리 데이터를 주고받고 공유 데이터를 관리하는 메커니즘 

 

🗝 KEY WORD
 # 프로세스 메모리 프로그램  #스레드는 프로세스 내

 

 

 

 

 


✔ 멀티 프로세스와 멀티 스레드의 차이에 대해 설명하시오

멀티 프로세스는 하나의 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 1개의 작업을 처리하도록 하는 것이다.
멀티 스레드는 하나의 프로그램을 여러 개의 스레드로 구성하여 각 스레드가 1개의 작업을 처리하도록 하는 것이다. 

멀티 프로세스 멀티 스레드
1개 프로세스가 죽어도 다른 프로세스에 영향을 주지 않는다(=독립적) 하나의 스레드에 문제가 생기면 전체 스레드가 영향을 받는다 
많은 메모리 공간과 CPU를 차지 적은 메모리 공간 차지
최소 1개의 스레드를 지니고 있다 문맥 전환이 빠르다 
컨텍스트 스위칭을 위한 오버헤드 발생 컨텍스트 스위칭의 오버헤드를 줄일 수 있다
각각 독립된 메모리를 할당 받았기에 통신이 어렵다 메모리 공유하기에 비교적 통신이 쉽다



 

 

 


✔ 컨텍스트 스위칭(Context Switching) 대해 설명하시오

컨텍스트 스위칭이란 인터럽트를 발생시켜 CPU에서 실행중인 프로세스를 중단하고, 다른 프로세스를 처리하기 위한 과정이다. 많은 프로세스가 동시에 실행되는 것처럼 보이지만 실제 어떠한 시점에서 실행되고 있는 프로세스는 단 한 개 이며, 아주 빠르게 스위칭이 일어나고 있다. 즉, 컨텍스트 스위칭에 대해 설명할 때는 싱글코어를 기준으로 말한다. 


캐시미스

  - 컨텍스트 스위칭에 드는 비용
  - 컨텍스트 스위칭 과정에서 프로세스가 가지고 있는 메모리 주소가 그대로 있으면 잘못된 주소 변환이 생기므로 캐시클     리어 과정을 겪게 된다. 이 때문에 캐시미스가 발생한다. 
 

 

🗝 KEY WORD
 # 컨텍스트 스위칭  # 싱글코어  # 캐시미스 

 

 

 

 

 

 


✔ 공유자원(Shared Resource)에 대해 설명하시오

공유자원이란 시스템 안에서 각 프로세스, 스레드가 함께 접근할 수 있는 프린터, 메모리, 파일, 데이터 등의 자원이나 변수 등을 의미한다. 

 

경쟁 상태 : 공유 자원을 두 개 이상의 프로세스가 동시에 읽거나 쓰는 상황

 

🗝 KEY WORD
 # 함께 접근 할 수 있는 자원이나 변수

 

 

 

 

 

 


✔ 임계영역(Critical Section)에 대해 설명하시오

 

임계영역은 둘 이상의 프로세스, 스레드가 공유 자원에 접근할 때 순서 등의 이유로 결과가 달라지는 코드 영역을 말한다. 

즉, 공유자원을 접근하는 데 있어 문제가 발생하지 않도록 한 번에 하나의 프로세스만 이용하게끔 보장해주는 영역이다.


임계 영역 문제를 해결하기 위한 3가지 방법

1. 뮤텍스

2. 세마포어

3. 모니터 

 

임계 영역 문제를 해결하기 위한 3가지 조건

1. 상호 배제 : 한 프로세스가 임계 영역에 들어갔을 때 다른 프로세스는 들어갈 수 없다.

2. 한정 대기 : 특정 프로세스가 영원히 임계 영역에 들어가지 못하면 안된다.

3. 융통성 : 한 프로세스가 다른 프로세스의 일을 방해해서는 안된다.

 

 

 

 

 

 

 

 


✔ 뮤텍스/ 세마포어/ 모니터에 대해 설명하시오

뮤텍스(mutex) 세마포어(semaphore) 모니터(monitor)
프로세스나 스레드가 공유 자원을 lock()을 통해 잠금 설정하고 사용한 후에 unlock() 통해 잠금 해제하는 객체 일반화된 뮤텍스 프로세스나 스레드가 공유 자원에 안전하게 접근할 수 있도록 하는 접근에 대한 인터페이스 제공 
하나의 프로세스나 스레다가 단독으로 실행된다 공유자원에 세마포어 변수만큼 프로세스가 접근할 수 있다 자동적 상호 배제 
잠금 메커니즘 : 잠금을 기반으로 상호배제가 일어난다 신호 메커니즘 : 신호를 기반으로 상호배제가 일어난다  
  바이너리 세마포어 : 0과 1의 두 가지 값만 지님
카운팅 세마포어 : 여러 개의 값을 지님
 

 

 

 

 

 

 

 


✔ 교착 상태(deadlock)에 대해 설명하시오

두 개 이상의 프로세스들이 서로가 가진 자원을 기다리며 중단된 상태를 말한다. 

이에 대한 원인으로 상호배제, 점유 대기, 비선점, 환형 대기가 있다. 

 

 

 

🗝 KEY WORD
 # 상점비환  #데드락  #무한정 대기

 

 

 

 

 

 

 

 

 

 

 


✔ 선점형 스케줄링과 비선점형 스케줄링에 대해 설명하시오

선점형은 하나의 프로세스가 다른 프로세스 대신에 CPU를 차지할 수 있지만 반면에 비선점형은 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없는 것을 말한다.

 

 

방식

📍 선점형 스케줄링

  • 라운드 로빈(RR: Round Robin) : 동일한 할당 시간을 주고 그 시간안에 해결되지 못하면 다시 준비 큐 상태로 돌아감
  • SRF(Shortest Remaining Time First) : 더 짧은 작업이 우선적인 알고리즘 
  • 다단계 큐 : 우선순위에 따른 준비 큐를 여러 개 사용하고, 큐마다 다른 스케줄링 알고리즘을 적용한 것

 

 


📍 비선점형 스케줄링

  • FCFS(First Come, First Served) : 가장 먼저 온 것이 가장 먼저 처리되는 알고리즘
  • SJF(Shortest Job First) : 실행 시간이 가장 짧은 프로세스를 가장 먼저 실행하는 알고리즘 / 기아 현상 발생 
  • 우선순위 : 각각의 프로세스의 우선순위를 정하여 순위가 높은 작업 순으로 처리하는 방식
  • HRN(Highest Response ratio Next) : SJF의 기아 현상을 보완한 방식. 짧은 작업의 우선순위가 높아지고, 긴 시간의 작업도 역시 오래 기다리면 우선순위가 높아지게 하는 방식

 

 

 

 

 


✔ 에이징(Aging) 기법에 대해 설명하시오

에이징 기법이란 우선순위를 높이는 방법이며, 자원이 할당되기를 기다린 시간에 비례하여 높은 우선순위를 부여하는 기법이다. 비선점형의 우선순위 스케줄링의 단점을 보완한 기법이다. 

🗝 KEY WORD
 # 우선순위  # 기다린 시간에 따른 우선순위 부여

 

 

 

 

 

 

 

 

 

 

 

<참고 자료>

https://product.kyobobook.co.kr/detail/S000001834833

 

면접을 위한 CS 전공지식 노트 | 주홍철 - 교보문고

면접을 위한 CS 전공지식 노트 | 디자인 패턴, 네트워크, 운영체제, 데이터베이스, 자료 구조, 개발자 면접과 포트폴리오까지! CS 전공지식 습득과 면접 대비, 이 책 한 권이면 충분하다! 개발자 면

product.kyobobook.co.kr

https://aws.amazon.com/ko/what-is/cpu/

 

CPU란?- 중앙 처리 장치 설명 - AWS

초기의 컴퓨터는 데이터 처리에 진공관을 사용했습니다. ENIAC 및 UNIVAC과 같은 기계는 크고 부피가 커서 많은 전력을 소비하고 상당한 열을 발생시켰습니다. 1940년대 후반 트랜지스터의 발명은 CP

aws.amazon.com

https://mangkyu.tistory.com/92

 

[기술면접] CS 기술면접 질문 - 운영체제 (5/8)

5. 운영체제 [ Byte Ordering이란 ] Byte Ordering이란 데이터가 저장되는 순서를 의미합니다. Byte Ordering의 방식에는 빅엔디안(Big Endian)과 리틀엔디안(Little Endian)이 있습니다. Big Endian MSB가 가장 낮은 주

mangkyu.tistory.com

https://dev-coco.tistory.com/162

 

신입 개발자 기술면접 질문 정리 - 운영체제

💡 프로세스와 쓰레드의 차이에 대해 설명해주세요. 프로세스는 실행 중인 프로그램을 말하며, 완벽히 독립적이기 때문에 메모리 영역(Code, Data, Heap, Stack)을 다른 프로세스와 공유하지 않습니

dev-coco.tistory.com

https://ksk-developer.tistory.com/40

 

개발자도 알면 좋은 DMA(direct memory access)

기존에도 DMA?하면 direct memory access인 것은 알았지만 뭐하는지는 알지 못했는데 lucene을 공부하면서 mmap에 대해 좀 더 자세히 알게 되었고 그러다가 zero copy까지 공부하게 되었는데 거기서 DMA의 역

ksk-developer.tistory.com

https://omyodevelop.tistory.com/90

 

스케줄링(Scheduling); 선점형(Preemitive)기법과 비선점형(Non-Preemptive)기법 차이점과 종류 (feat.에이징(

* 2021 정보처리기능사 필기 과목 시험대비를 위해 작성한 글입니다. 제 3과목 운영체제(OS)의 선점형 기법과, 비선점형 기법에 관한 내용을 기록해 두었습니다. 개인적인 자격증 공부 기록용으로

omyodevelop.tistory.com

 

기술 지식 습득에 도움을 주신 모든 블로그 관리자 분들 감사합니다 🙏

부족한 내용에 대한 조언은 언제나 환영입니다 :) 

 

 

 

 

728x90