Tech Interview/Operating System

Tech Interview/Operating System

[Operating System] 목차

순번 유형 01 컴퓨터 시스템의 동작 원리 컴퓨터의 구성 중앙처리장치의 작동 원리 인터럽트 02 운영체제 운영체제 03 프로세스와 스레드 프로세스 프로세스 주소 공간 멀티 프로세스 PCB와 Context Switching 시스템 콜 스레드 멀티 스레드 멀티 스레드와 멀티 프로세스 04 IPC IPC 05 CPU 스케줄링 CPU 스케줄링 프로세스 상태 전이 CPU 스케줄링의 종류 06 프로세스 동기화 동기화 문제 세마포어 뮤텍스 교착 상태 경쟁 상태 07 동기와 비동기 동기 비동기 08 메모리 관리 메인 메모리 단편화 메모리 관리 기법 페이징 세그먼테이션 09 가상 메모리 가상 메모리 요구 페이징 페이지 교체 알고리즘 10 캐시 캐시 캐시의 지역성 11 파일 시스템 파일 시스템 파일 시스템의 구성과 접근

Tech Interview/Operating System

[Operating System] 파일 시스템

✔️ 파일 시스템 파일 시스템이란? 컴퓨터에서 파일이나 자료를 쉽게 발견할 수 있도록, 유지 및 관리하는 방법 커널 영역에서 동작하며, 파일의 CRUD 기능을 원활히 수행하기 위한 목적으로 사용 계층적 디렉터리 구조를 가지므로 1단계 디렉터리, 2단계 디렉터리, 트리 구조 디렉터리, 그래프 구조 디렉터리 등이 존재하며 디스크 파티션 별로 하나씩 파일 시스템을 둘 수 있음 하드디스크와 메인 메모리 속도차를 줄이며 하드디스크의 용량을 효율적으로 이용할 수 있게 해주며 파일 관리, 보조 저장소 관리, 파일 무결성 메커니즘, 접근 방법도 제공 파일 시스템의 구성과 접근 메타 영역과 데이터 영역으로 구성 메타 영역 : 데이터 영역에 기록된 파일의 이름, 위치, 크기, 시간정보, 삭제유무 등의 파일 정보 데이터 영..

Tech Interview/Operating System

[Operating System] 캐시

✔️ 캐시 캐시란? 주기억장치에 저장된 내용의 일부를 임시로 저장해두는 기억장치 (범용 메모리) CPU와 주기억장치의 속도 차이로 인한 성능 저하를 방지하기 위한 방법으로 CPU가 이미 봤던 걸 다시 재접근할 때, 메모리 참고 및 인출 과정에 대한 비용을 줄이기 위해 캐시에 저장해둔 데이터를 활용 CPU에서 주소를 전달했을 때 캐시 기억장치에 명령이 존재한다면(Hit) 해당 명령어를 CPU로 전송하여 완료함 만약 존재하지 않는다면(Miss) 명령어를 주기억장치에 접근하여 해당 명령어를 가진 데이터를 인출하고 이를 캐시에 저장한 후 CPU로 전송하여 완료함 캐시를 잘 활용한다면 비용을 줄일 수 있으므로 CPU가 어떤 데이터를 원할지 예측하여 캐시에 많이 활용되는 쓸모 있는 정보가 들어있도록 해야 함 캐시의..

Tech Interview/Operating System

[Operating System] 가상 메모리

✔️ 가상 메모리 가상 메모리란? 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법 다중 프로그램을 실현하기 위해서는 많은 프로세스들을 동시에 메모리에 올려두어야 하므로 메모리 용량이 큰 프로그램은 실행시킬 수 없게 됨 그러므로 프로그램의 일부분만 메모리에 올려 물리 메모리 크기에 제약받지 않도록 하며 더 많은 프로그램을 동시에 실행하고자 함 가상 메모리는 실제의 물리 메모리 개념과 사용자의 논리 메모리 개념을 분리하여 작은 메모리를 가지고 큰 가상 주소 공간을 프로그래머에게 제공할 수 있음 이때 시스템 라이브러리가 여러 프로세스들 사이에 공유될 수 있어 각 프로세스들은 각자 자신의 주소 공간처럼 인식하지만 실제 물리 메모리는 공유되고 있음 그러므로 라이브러리에 올라가 있는 물리..

Tech Interview/Operating System

[Operating System] 메모리 관리

✔️ 메모리 관리 메인 메모리(Main Memory)란? CPU가 직접 접근할 수 있는 기억 장치로 주소가 할당된 일련의 바이트들로 구성되어 있음 프로세스가 실행되려면 프로그램이 메모리에 올라와야 함 CPU는 레지스터가 지시하는대로 메모리에 접근하여 다음에 수행할 명령어를 가져오며 명령어 수행 시 메모리에 필요한 데이터가 없으면 해당 데이터를 우선 가져오도록 함 메모리 관리를 위해서는 Swapping 기법을 사용해 CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억장치로 내보내고 다른 프로세스의 메모리를 불러들이도록 함 swap-in : 주기억장치(RAM)으로 불러오는 과정 swap-out : 보조 기억장치로 내보내는 과정 MMU(메모리 관리 장치)는 한정된 메모리 공간을 사용하여 더 많은 메모리를 ..

Tech Interview/Operating System

[Operating System] 동기와 비동기

✔️ 동기와 비동기 동기(Synchronous)란? 동시에 반환 값이 기대되는 경우 요청과 그 결과가 동시에 일어난다는 약속 노드와 노드 사이의 작업 처리 단위를 동시에 맞추어야 함 값이 반환되기 전까지는 blocking 되어 있음 설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 함 비동기(Asynchronous)란? 동시에 반환 값을 기대하지 않은 경우 요청과 그 결과가 동시에 일어나지 않을 것이라는 약속 blocking 되지 않고(non-blocking) 이벤트 큐에 넣거나 백그라운드 스레드에 해당 task를 위임하고 바로 다음 코드를 실행 설계가 동기보다 복잡하지만, 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원 효율적

Tech Interview/Operating System

[Operating System] 프로세스 동기화

✔️ 프로세스 동기화 동기화 문제 임계 영역이란 여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터를 접근하는 프로그램 코드 부분 이렇게 공유된 자원에 여러 프로세스가 동시에 접근하면 문제가 발생할 수 있음 그러므로 공유된 자원의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 둬야함 동기화 기법에는 유저 모드의 동기화와 커널 모드의 동기화가 존재 유저 모드의 동기화 커널의 힘을 빌리지 않는 동기화 기법으로 임계 구역 기반의 동기화와 인터락 함수 기반의 동기화가 존재 커널 모드의 동기화 커널에서 제공하는 동기화 기능을 이용하는 방법으로 세마포어, 뮤텍스, 모니터 등이 존재 세마포어(Semaphore)란? 멀티프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법 세..

Tech Interview/Operating System

[Operating System] CPU 스케줄링

✔️ CPU 스케줄링 CPU 스케줄링이란? CPU를 잘 사용하기 위해 프로세스를 배정하는 것으로 오버헤드와 기아 현상을 줄이고, 사용률을 높임 CPU 스케줄링의 척도로는 작업이 처음 실행되기까지 걸린 시간인 응답 시간과 실행 시간과 대기 시간을 모두 합한 시간으로 작업이 완료될 때까지 걸린 시간인 반환 시간이 존재 CPU 스케줄링에는 3가지 목표가 존재 Batch System : 가능한 많은 일(높은 처리량)을 수행해야 함 Interactive System : 빠른 응답 시간, 적은 대기 시간을 가져야 함 Real-time System : 기한을 맞춰야 함 프로세스 상태 전이 승인 (Admitted) : New → Ready 프로세스 생성(New)이 가능하여 승인 스케줄러 디스패치 (Scheduler D..

김깅긍
'Tech Interview/Operating System' 카테고리의 글 목록