취업/기술면접 18

[CS / 운영체제(OS)] ep18. Multi process/thread 환경에서 동기화 문제를 어떻게 해결하나요?

🤔 면접 질문 Q1. Multi process/thread 환경에서 동기화 문제를 어떻게 해결하나요? A1. 동기화문제를 해결하기 위해 mutex, semaphore 기법 등을 사용할 수 있습니다. Mutex란 1개의 스레드만이 공유 자원에 접근할 수 있도록 하여, 경쟁 상황(race condition)를 방지하는 기법입니다. 공유 자원을 점유하는 thread가 lock을 걸면, 다른 thread는 unlock 상태가 될 때까지 해당 자원에 접근할 수 없습니다. Semaphore란 S개의 thread만이 공유 자원에 접근할 수 있도록 제어하는 동기화 기법입니다. Semaphore 기법에서는 정수형 변수 S(세마포) 값을 가용한 자원의 수로 초기화하고, 자원에 접근할 때는 S-- 연산을 수행하여 세마포 값..

취업/기술면접 2023.06.26

[CS / 운영체제(OS)] ep17. multi process환경에서 process들은 어떻게 데이터를 주고 받나요?

🤔 면접 질문 Q1. multi process환경에서 process들은 어떻게 데이터를 주고 받나요? A1. 원칙적으로 process는 독립적인 주소 공간을 갖기 때문에, 다른 process의 주소 공간을 참조할 수 없습니다. 하지만 경우에 따라 운영체제는 process 간의 자원 접근을 위한 매커니즘인 프로세스 간 통신(IPC, Inter Process Communication)를 제공합니다. 프로세스 간 통신(IPC) 방법으로는 파이프, 파일, 소켓, 공유메모리 등을 이용한 방법이 있습니다. 💡 면접🐕🍯 tip IPC는 면접에서도 굉장히 자주 나오는 질문이다. multi thread와 다르게 process끼리는 데이터 공유를 하지 않는다. 따라서 데이터를 주고 받기 위해서 IPC기법을 사용한다. IP..

취업/기술면접 2023.06.15

[CS / 운영체제(OS)] ep16. multi process와 multi thread를 비교설명해 주세요.

🤔 면접 질문 Q1. multi process와 multi thread를 비교설명해 주세요. A1. multi process와 multi thread의 차이점은 다음과 같습니다. multi thread는 multi process보다 적은 메모리 공간을 차지하고 Context Switching이 빠릅니다. multi process는 multi thread보다 많은 메모리공간과 CPU 시간을 차지합니다. multi thread는 동기화 문제와 하나의 thread 장애로 전체 thread가 종료될 위험이 있습니다. multi process는 하나의 process가 죽더라도 다른 process에 영향을 주지 않아 안정성이 높습니다. 💡 면접🐕🍯 tip 두 방법은 동시에 여러 작업을 수행한다는 측면에서 유사한 면..

취업/기술면접 2023.06.07

[CS / 운영체제(OS)] ep15. Multi thread에 대해서 설명해 주세요.

🤔 면접 질문 Q1. Multi thread에 대해서 설명해 주세요. A1. thread는 한 process 내에서 실행되는 동작(기능, function)의 단위입니다. 각 thread는 속해있는 process의 Stack 메모리를 제외한 나머지 memory 영역을 공유할 수 있습니다. Multi thread란 하나의 process가 동시에 여러개의 일을 수행할수 있도록 해주는 것입니다. 즉, 하나의 process에서(실행이 된 하나의 program에서) 여러 작업을 병렬로 처리하기 위해 multi thread를 사용합니다. multi thread에서는 한 process 내에 여러 개의 thread가 있고, 각 thread들은 Stack 메모리를 제외한 나머지 영역(Code, Data, Heap) 영역을..

취업/기술면접 2023.06.05

[CS / 운영체제(OS)] ep14. Multi process에 대해서 설명해 주세요.

🤔 면접 질문 Q1. Multi process에 대해서 설명해 주세요. A1. Multi process란 2개 이상의 process가 동시에 실행되는 것을 말합니다. 동시에라는 말은 동시성(concurrency)과 병렬성(parallelism) 두 가지를 의미합니다. 동시성은 CPU core가 1개일 때, 여러 process를 짧은 시간동안 번갈아 가면서 연산을 하게 되는 시분할 시스템(time sharing system)으로 실행되는 것입니다. 병렬성은 CPU core가 여러개일 때, 각각의 core가 각각의 process를 연산함으로써 process가 동시에 실행되는 것입니다. 💡 면접🐕🍯 tip 요새 우리가 쓰는 노트북은 CPU core가 여러개 있다. core가 여러개여서 실제로 여러 proces..

취업/기술면접 2023.06.02

[CS / 운영체제(OS)] ep13. process를 간단히 설명해주세요

🤔 면접 질문 Q1. process를 간단히 설명해 주세요. A1. 실행파일(program)이 memory에 적재되어 CPU를 할당받아 실행되는 것을 process라고 합니다. 💡 면접🐕🍯 tip 운영체제를 관통하는 핵심적인 단어 하나를 뽑는다면 그건 바로 process다. 운영체제가 작동하는 다양한 원리들이 바로 process를 위해 존재하는 것이다. 따라서 process의 정의를 잘 이해한다면 앞으로 나올 내용들도 자연스럽게 이해가 갈 것이다. process를 memory와 CPU관점으로 면접관에게 설명을 하면 된다. 1️⃣ Process 프로세스(process)란 실행중인 프로그램(program in execution)을 뜻한다. 즉, 실행파일 형태로 존재하던 program이 memory에 적재되어..

취업/기술면접 2023.06.01

[CS / Array vs Linked List] ep12. Hash table에서 collision이 발생하면 어떻게 되나요? 해결방법엔 뭐가 있을까요?

🤔 면접 질문 Q1. Hash table에서 collision이 발생하면 어떻게 되나요? 해결방법엔 뭐가 있을까요? A1. collision이 발생할 경우 대표적으로 2가지 방법으로 해결합니다. 첫 번째, open addressing 방식은 collision이 발생하면 미리 정한 규칙에 따라 hash table의 비어있는 slot을 찾습니다. 빈 slot을 찾는 방법에 따라 크게 Linear Probing, Quadratic Probing, Double Hashing으로 나뉩니다. 두 번째, separete chaining 방식은 linked list를 이용합니다. 만약에 collision이 발생하면 linked list에 노드(slot)를 추가하여 데이터를 저장합니다. 💡 면접🐕🍯 tip 정말 자주나오..

취업/기술면접 2023.05.29

[CS / Array vs Linked List] ep11. Hash table는 어떤 자료구조인가요?

🤔 면접 질문 Q1. Hash Table는 어떤 자료구조인가요? A1. hash table은 효율적인 탐색(빠른 탐색)을 위한 자료구조로써 key-value쌍의 데이터를 입력받습니다. hash function h에 key값을 입력으로 넣어 얻은 해시값 h(k)를 위치로 지정하여 key- value 데이터 쌍을 저장합니다. 저장, 삭제, 검색의 시간 복잡도는 모두 O(1)입니다. 💡 면접🐕🍯 tip CS 면접에서 가장 자주 나오는 질문중에 하나다. Hash table이 면접 단골질문인 이유는 다음과 같다. ☝ 실무에서도 활용도가 높은 자료구조다. ✌ Linked list, Array 더 나아가면 Tree까지 질문할 수 있다. 🤟시간복잡도에 대해서 물어보기 좋다. 한편, 좋은 hash function의 조건..

취업/기술면접 2023.05.18

[CS / Array vs Linked List] ep10. BST는 어떤 자료구조인가요?

🤔 면접 질문 Q1. BST는 어떤 자료구조 인가요? A1. 이진탐색트리(Binary Search Tree; BST)는 정렬된 tree입니다. 어느 node를 선택하든 해당 node의 left subtree에는 그 node의 값보다 작은 값들을 지닌 node들로만 이루어져 있고, node의 right subtree에는 그 node의 값보다 큰 값들을 지닌 node들로만 이루어져 있는 binary tree입니다. 검색과 저장, 삭제의 시간 복잡도는 모두 O(logn)이고, worst case는 한쪽으로 치우친 tree가 됐을 때 O(n)입니다. 💡 면접🐕🍯 tip BST는 저장과 동시에 정렬을 하는 자료구조이다. 따라서 새로운 데이터를 저장할 때 일정한 규칙에 따라 저장을 하게 된다. Heap을 공부했었을..

취업/기술면접 2023.05.17

[CS / Array vs Linked List] ep09. Queue vs priority queue를 비교하여 설명해 주세요

🤔 면접 질문 Q1. Queue vs priority queue를 비교하여 설명해 주세요 A1. Queue 자료구조는 시간 순서상 먼저 집어 넣은 데이터가 먼저 나오는 선입선출 FIFO(First In First Out) 구조로 저장하는 형식입니다. 이와 다르게 우선 순위 큐(priority queue)는 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나옵니다. Queue의 operation의 시간복잡도는 enqueue = O(1), dequeue = O(1)이고, Priority queue는 push = O(logn), pop = O(logn)입니다. 💡 면접🐕🍯 tip : 면접질문에서 '우선 순위 큐'를 잘 답하기 위해서는 구현 방법과 operation의 시간 복잡도를 잘 설명할 수 있어야 한..

취업/기술면접 2023.05.16