Tech Interview

기술 면접 스터디
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

[Operating System] IPC

✔️ IPC IPC(Inter Process Communication)이란? 독립적인 공간을 가지고 독립적으로 실행되는 프로세스 간의 통신을 가능하도록 해주는 것 프로세스는 운영체제의 핵심 부분인 커널이 제공하는 IPC 설비를 이용해 프로세스간 통신을 할 수 있게 됨 필요에 따라 IPC 설비를 선택해서 사용하며 프로세스 간 데이터를 동기화하고 보호하기 위해 세마포어와 뮤텍스를 사용해 공유된 자원에 한번에 하나의 프로세스만 접근하도록 함 IPC 종류 익명 PIPE 하나의 파이프가 두 개의 프로세스를 연결 이때 통신할 프로세스를 모두 명확히 알고 있어야 함 (부모-자식 관계 프로세스 간 등) 하나의 프로세스는 데이터를 쓰기만 하고, 다른 하나는 데이터를 읽기만 함 한쪽 방향으로만 통신이 가능한 반이중 통신으..

Tech Interview/Operating System

[Operating System] 프로세스와 스레드

✔ 프로세스와 스레드 프로세스란? 메모리 상에서 실행중인 작업(프로그램) 디스크로부터 메모리에 적재되어 CPU의 할당을 받은 작업의 단위 운영체제로부터 주소, 공간, 파일, 메모리 등의 시스템 자원을 할당받게 됨 프로세스 주소 공간이란? 프로세스는 각각 별도의 주소공간을 할당받음 프로세스 주소 공간에는 최대한 데이터를 공유하여 메모리 사용량을 줄이기 위해 코드, 데이터, 스택으로 이루어짐 Code : 코드 자체를 구성하는 메모리 영역 Data : 전역변수, 정적변수, 배열 등을 구성하는 메모리 영역 Heap : 동적 할당 시 사용하는 메모리 영역 Stack : 지역변수, 매개변수, 리턴 값 등을 구성하는 임시 메모리 영역 멀티 프로세스란? 하나의 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 병..

Tech Interview/Operating System

[Operating System] 운영체제

✔ 운영체제 운영체제(OS, Operating System)란? 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어 하드웨어를 관리하고 컴퓨터 시스템의 자원들을 효율적으로 관리하도록 함 또한 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공 예) Windows, Linux, Unix, MS-Dos 등 운영체제의 역할 프로세스 관리 : 운영체제에서 작동하는 응용 프로그램을 관리 프로세스, 스레드 스케줄링 동기화 IPC 통신 저장장치 관리 : 1차 저장장치에 해당하는 메인 메모리와 2차 저장장치에 해당하는 하드디스크 등을 관리 메모리 관리 가상 메모리 파일 시스템 네트워킹 : 인터넷에 연결하거나 응용 프로그램이 네..

Tech Interview/Operating System

[Operating System] 컴퓨터 시스템의 동작 원리

✔ 컴퓨터 시스템의 동작 원리 컴퓨터의 구성 하드웨어 : 컴퓨터를 구성하는 기계적 장치 중앙처리장치(CPU) : 주기억장치에서 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어 기억장치 : 프로그램, 데이터, 연산의 중간 결과를 저장하는 장치 (RAM, HDD) 입출력 장치 : 컴퓨터 내부로 자료를 입력하거나 외부로 표현하는 장치 (마우스, 프린터) 시스템 버스 : 하드웨어 구성 요소를 물리적으로 연결하는 선으로 데이터를 보내는 통로가 되어줌 (데이터/주소/제어 버스) 소프트웨어 : 하드웨어의 동작을 지시하고 제어하는 명령어 집합 시스템 소프트웨어 : 운영체제, 컴파일러 응용 소프트웨어 : 워드프로세서, 스프레드시트 중앙처리장치(CPU)의 작동 원리 CPU는 연산장치, 제어장치, 레지..

Tech Interview/Data Structure

[Data Structure] 목차

순번 유형 01 배열 (Array) 배열 (Array) 배열 리스트 (ArrayList) 02 리스트 (List) 리스트 (List) 연결 리스트 (LinkedList) Array vs ArrayList vs LinkedList 03 스택 (Stack) 스택 (Stack) 04 큐 (Queue) 큐 (Queue) 우선순위 큐 (Priority Queue) 05 힙 (Heap) 힙 (Heap) 06 트리 (Tree) 트리 (Tree) 이진 트리 (Binary Tree) 이진 검색 트리 (Binary Search Tree) 레드 블랙 트리 (Red-Black Tree) B-트리 & B+트리 (B-Tree & B+Tree) 트라이 (Trie) 07 해시 (Hash) 해시 (Hash) 해시 함수 (Hash Fu..

Tech Interview/Data Structure

[Data Structure] 그래프 (Graph)

✔ 그래프 그래프(Graph)란? 정점(노드)과 간선(엣지)의 집합 트리는 사이클이 허용되지 않는 그래프 그래프 용어 무방향 그래프 : 정점과 간선의 연결관계에 있어서 방향성이 없는 그래프 방향 그래프 : 정점과 간선의 연결관계에 있어서 방향성이 포함되어 있는 그래프 가중치 그래프 : 간선에 가중치 정보를 두어서 구성한 그래프 비가중치 그래프 : 모든 간선의 가중치가 동일한 그래프 부분 그래프 : 본래의 그래프의 일부 정점 및 간선으로 이루어진 그래프 차수 : 각 정점에 연결된 엣지의 개수 방향 그래프에서는 간선에 방향성이 존재하기 때문에 차수가 두 개로 나뉘게 됨 각 정점에서 나가는 간선의 개수는 진출차수 각 정점으로 들어오는 간선의 개수는 진입차수 그래프를 구현하는 방법 인접 행렬 : 정방 행렬로 그..

Tech Interview/Data Structure

[Data Structure] 해시 (Hash)

✔ 해시 해시(Hash)란? 해시 테이블이라고도 불림 내부적으로 배열을 이용하여 데이터를 저장 해시의 특징 key와 value를 1:1로 연관지어 저장 key를 이용하여 value를 도출 데이터의 고유 인덱스로 접근하여 값을 검색하므로 시간 복잡도가 O(1) 해시 함수를 이용하여 저장할 데이터와 연관된 고유한 숫자인 해시 코드를 만들어낸 뒤 이를 인덱스로 사용 특정 데이터가 저장되는 인덱스는 그 데이터만의 고유한 위치이기 때문에 삽입 연산 시 다른 데이터의 사이에 끼어들어나, 삭제 시 다른 데이터로 채울 필요가 없으므로 연산에 추가적인 비용이 없음 해시 함수 고유한 인덱스 값을 설정하기 위한 특별한 알고리즘 임의의 길이의 데이터를 수학적 연산을 통해 고정된 길이의 데이터로 매핑 해시 함수를 이용해 반횐된..