Computer Science/CS 기술 면접 스터디

Q. Array와 LinkedList의 장점과 단점에 대해 시간 복잡도를 가지고 설명해주세요. 더보기 Array의 장점은 순차적으로 데이터를 저장할 수 있다는 것입니다. 데이터에 순서가 있으므로 index를 갖게 되며, index를 이용하여 자료의 탐색을 O(1)의 시간복잡도로 할 수 있습니다. 반면 데이터가 순차적으로 존재하기 때문에 새로운 데이터를 삽입하거나 삭제하는 경우 그 뒤의 모든 데이터들을 한칸씩 움직여주어야 한다는 단점이 있습니다. 이 경우 O(N) 의 시간 복잡도를 가집니다. LinkedList의 경우 삽입과 삭제 연산에 O(1)의 시간복잡도를 가집니다. 반면, 탐색을 하는 경우 array 처럼 index를 이용하여 바로 접근할 수 없으며 선형 탐색을 해야 하므로 O(N)의 시간복잡도를 가..
CPU 스케줄링 데드락(DeadLock) Race Condition 세마포어(Semaphore) & 뮤텍스(Mutex) 페이징 & 세그먼테이션 페이지 교체 알고리즘 메모리(Memory) 파일 시스템 Q. CPU 스케줄링 알고리즘 중에서 비선점형 스케줄링에 대해 설명해주세요 더보기 CPU 의 이용률을 극대화하기 위해서 멀티 프로그래밍을 해야 한다. 언제 어떤 프로세스에 CPU 자원을 할당할지 결정하는 것이 CPU 스케줄링이다. 비선점형 스케줄링이란 한 프로세스가 CPU 를 점유하고 있다면 다른 프로세스가 CPU 자원을 빼앗을 수 없는 방식이다. 따라서 필요한 문맥 교환만 발생하여 오버헤드가 상대적으로 적지만 프로세스가 어떻게 배치되는 지에 따라서 효율성이 많이 차이날 수 있다. 비선점형 스케줄링의 종류 F..
이번 포스팅에서 정리할 운영체제 핵심 키워드 프로세스 스레드 인터럽트 시스템 콜 Process Context Switching IPC (Inter Process Communication) Q. 프로세스와 스레드에 대해 설명해주세요. 더보기 프로세스 : 프로그램이 정적 코드의 집합이라면, 프로세스는 프로그램이 실행되어 메모리에 적재 된 이후, CPU 자원을 할당 받아서 실행되고 있는 동적인 상태인 것을 의미한다. 스레드 : 하나의 프로세스 안에서 동시에 실행중인 작업 흐름의 단위를 의미한다. 인터넷 브라우저에서 동영상 재생을 하며, 쇼핑을 할 수 있는데 이는 하나의 프로세스 안에서 동시에 여러 스레드들이 진행되기 때문에 가능하다. Q. 프로세스의 내부 구조에 대해 설명해주세요. 더보기 코드영역 프로그래머가..
minjiwoo
'Computer Science/CS 기술 면접 스터디' 카테고리의 글 목록