시스템
- 데드락 발생 조건과 Preventions
- Producer/Consumer - bounded buffer 문제
- 조건을 만족할때 까지 대기할 수 있는 Condition Variable 큐
- futex - Waiting Queue 리눅스 구현체
- Lock 구현에서 Yield를 통한 CPU 낭비 해결
- Spinning 기반 Lock 구현 방법들 - Test-And-Set, Fetch-And-Add
- 멀티쓰레드 환경에서 공유되는 자원에 대한 문제와 Lock
- 실행 흐름을 만들어내는 프로세스 vs 쓰레드
- 페이지 교체 알고리즘 - LRU, Clock, N'th Chance
- Paging
- Segmentation - 일반화된 Base/Bound 주소 변환
- 프로세스별로 가상화된 주소 공간과 하드웨어 기반(MMU) 주소 변환
- 결정론적인 Stride 스케줄링 기법과 리눅스 스케줄러인 CFS
- MLFQ - 멀티 레벨 피드백 큐
- 반환시간, 응답시간별 스케줄링 방법들 비교 - FIFO, SJF, STCF, RR
- 시스템콜 - 커널영역의 명령어를 사용하는 Limited Direct Execution
- exec - 프로세스 실행 방식(2)
- fork - 프로세스 실행 방식(1)
- 시스템 부팅 과정, 부트로더와 런레벨
- 디스크 파티션
- 배열이 전역변수, 지역변수, 포인터로 선언되었을 때의 내부적인 차이
- Function call, Activation Record
- Addressing Mode - Indirect, Indexed, Immediate
- Two Pass Assmebling
- 다양한 CPU 레지스터들
- Register-Register Transfer Form
- LMC 동작 방식
- 어셈블러와 컴파일러의 차이
- inode, hard link, symbolic link - 아이노드는 무엇이며, 하드링크와 심볼릭링크의 차이는?