정리방식: 주요질문에 대한 리스트업을 하고, 내가 이 개념에 대해서 말로 설명할 수 있고, 화이트보드에 구조를 직접 그려가면서 설명할 수 있다면 어느 부분의 챕터인지 정리해나간다.
어떤 것이 핵심 키워드인지는 코세라 운영체제 강의, 공룡책, 그리고 타 개발자들이 경험한 면접 질문들의 키워드를 추가해나가면서 정리하고 있다.
PARTⅠ개관
CHAPTER 1 서론
- 운영체제의 역활
CHAPTER 2 시스템 구조
PARTⅡ 프로세스 관리
CHAPTER 3 프로세스
CHAPTER 4 스레드
CHAPTER 5 CPU 스케줄링
CHAPTER 6 프로세스 동기화
CHAPTER 7 교착상태
PARTⅢ 메모리 관리
CHAPTER 8 메모리 관리 전략
CHAPTER 9 가상 메모리
PARTⅣ 저장장치 관리
CHAPTER 10 파일 시스템
CHAPTER 11 파일 시스템 구현
CHAPTER 12 대용량 저장장치 구조
CHAPTER 13 입출력 시스템
PARTⅤ 보호와 보안
CHAPTER 14 시스템 보호
CHAPTER 15 시스템 보안
PARTⅥ 사례 연구
CHAPTER 16 Linux 시스템
CHAPTER 17 윈도우즈 7
CHAPTER 18 영향력 있는 운영체계
- 주요 개념 키워드. 당신은 이걸 말로 풀어 설명할 수 있는가? 칠판에 그 구조를 간략하게 그려서 설명할 수 있는가?
- 프로세스와 스레드의 차이(Process vs Thread)
- 멀티 프로세스 대신 멀티 스레드를 사용하는 이유
- Thread-safe
- 동기화 객체의 종류
- 뮤텍스와 세마포어의 차이
-
스케줄링
ref: https://en.wikipedia.org/wiki/Scheduling_(computing)
메모리에 올려져서 실행중인 프로그램인 프로세스의 진행을 관리하는 주체입니다.
ready queue에 올려져있는 프로세스를 CPU에 할당받게 해주는 역활을 합니다. - 동기와 비동기
- 프로세스 동기화
- 메모리 관리 전략
- 가상 메모리
- 캐시의 지역성
- 교착상태(데드락, Deadlock)의 개념과 조건
- 사용자 수준 스레드와 커널 수준 스레드
- 외부 단편화와 내부 단편화
- Context Switching
- Swapping
- 교착 상태(데드락)의 4가지 조건
- 메모리 계층
- 메모리 할당 알고리즘
- 페이징, 세그먼테이션
- context switching
- 사용자 수준의 스레드와 커널 수준의 스레드의 차이
- synchronized
- explain the main purpose of an operating systems?
- what is demand paging?
- what are the advantages of a multiprocessor system?
- what is kernel?
- what are real-time systems?
- what is a virtual memory?
- describe the objective of multiprogramming
- what is time-sharing system?
- what is SMP?
- how are server systems classified?
- what is asymmetric clustering?
- what is a thread?
- give some benefits of multithreaded programming.
- briefly explain FCFS.
- what is RR scheduling algorithm?
- what are necessary conditions which can lead to a deadlock situation in a system?
- enumerate the different RAID levels.
- describe Banker's algorithm.
- what factors determine whether a detection-algorithm must be utilized in a deadlock avoidance system?
- state the main difference between logical from phyical adress space.
- how does dynamic loading aid in better memory space utilization?
- what are overlays?
- what is the basic function of paging?
- what is fragmentation?
- how does swapping result in better memory management?
- give an example of a process state.
- what is a socket?
- when does thrashing occur?
- what is the best page size when designing an operating system?
- when designing the file structure for an operating system, what attribute are considered?
- what is root partition?
- what are device drivers?
- what are the primary function of VFS?
- what are the difference types of CPU registers in a typical operation system design?
- what is multitasking?
- explain pros and cons of a command line interface?
- what is caching?
- what is spooling?
- what is an assembler?
- what are interrupts?
- what is GUI?
- what is preemptive multitasking?
- why partitioning and formatting is a prerequisite to installing an operating system?
- what is plumbing/piping?
- what is NOS?
- DIfferentiate internal commands from external commands.
- Under DOS, what command will you type when you want to list down the files in a directory, and at the same time pause after every screen output?
a) dir /w b) dir /p c) dir /s d) dir /w /p - how would a file name EXAMPLEFILE.TXT appear when viewed under the DOS command console operating in Wndows 98?
- what is foler in Ubuntu?
- explain why Ubuntu is safe and not affected by viruses?
- explain what is Unity in Ubuntu? how can you add new entries to the launcher?
- explain the purpose of using a libaio package in Ubuntu?
- what is the use of behavior tab in Ubuntu?
- what is the meaning of "export" command in Ubuntu?
- Explain how you can reset Unity Configuration?
- explain how to access Terminal?
ref.
1. https://career.guru99.com/top-50-operating-system-interview-questions/
2. https://www.javatpoint.com/operating-system-interview-questions
3. https://www.wisdomjobs.com/e-university/operating-system-interview-questions.html
4. https://gmlwjd9405.github.io/2017/10/01/basic-concepts-of-development-os.html
아무래도 해외 영문 사이트 질문이 좀 더 완결된 문장으로 되어있고, 답변 또한 잘 정리 되어 있는 것 같다.
이 글을 보는 개발자 인터뷰 준비자들은 가고싶은 특정 국내회사의 질문리스트를 보는게 아니라면, 해외 개발사이트에서 레퍼런스를 얻는 것을 개인적으로 추천한다. (검색 키워드: operating system interview question, os interview 등...)
압도적으로 정보량이 많고 영문으로 사용되는 용어들에 익숙해질 수 있다.
ex) RR scheduling -> Round robin scheduling
'OS' 카테고리의 다른 글
3장. 컴퓨터 시스템의 동작 원리 (0) | 2022.09.10 |
---|---|
[OS] 가상메모리 개념 정리 (0) | 2020.11.16 |
[OS] 프로세스, 쓰레드 개념 정리 (0) | 2020.11.16 |
[OS] 운영체제 구조, 스케쥴링 개념 요약 (0) | 2020.11.16 |