운영체제, OS Flashcards
운영체제, OS 관련 개발자 면접 질문 정리
프로세스 주소 공간은 어떻게 구성되는가?
프로세스의 주소 공간은 데이터 영역, 코드 영역, 힙 영역, 스택 영역으로 구성되어 있습니다.
프로세스의 데이터 영역이란?
초기화된 전역 변수와 정적 변수가 저장되는 메모리 공간입니다.
프로세스의 코드 영역이란?
실행 파일의 명령어 코드로 즉, 프로그램의 소스 코드가 기계어로 번역된 형태가 저장되는 메모리 공간입니다.
프로세스의 힙 영역이란?
힙 영역은 동적 메모리 할당을 위해 사용되는 메모리 공간입니다.
프로세스의 스택 영역이란?
스택 영역은 함수 호출 시 사용되는 지역 변수, 매개변수, 반환 주소 등이 저장되는 메모리 공간입니다.
프로세스와 스레드의 차이는 무엇인가?
프로세스는 운영체제로부터 자원을 할당받은 실행 중인 프로그램입니다. 스레드는 이러한 프로세스 내에서의 실행 흐름의 단위입니다.
멀티스레드 프로그래밍에서의 문제점은 무엇인가?
멀티 스레드 프로그래밍에서 경쟁 상태, 데드락, 라이브락, 기아 상태 등의 문제점이 존재합니다.
경쟁 상태란?
여러 스레드가 동시에 공유 자원에 접근할 때 발생하는 문제로, 데이터 일관성이 깨질 수 있는 상태입니다.
데드락이란?
두 개 이상의 스레드가 서로의 자원을 기다리며 무한 대기 상태에 빠지는 현상입니다.
라이브락이란?
스레드가 서로에게 응답하기 위해 계속 상태를 변경하지만, 실제 작업을 진행하지 못하는 상태입니다.
기아 상태란?
특정 스레드가 필요한 자원을 얻지 못해 실행되지 못하는 상태입니다.
스레드 동기화는 어떻게 하나?
스레드 동기화 방법에는 뮤텍스, 세마포, 모니터 등이 존재합니다.
뮤텍스 락란?
상호 배제를 위한 잠금 메커니즘으로, 한 번에 하나의 스레드만이 공유 자원에 접근할 수 있도록 합니다.
세마포란?
특정 자원에 대한 접근을 제한하는 카운터 기반 동기화 메커니즘입니다.
모니터란?
동기화된 다중 스레드 프로그래밍에서 스레드가 공유 자원에 접근할 때 상호 배제를 보장하고, 조건 변수를 통해 스레드 간의 협력을 쉽게 할 수 있도록 하는 고수준의 동기화 메커니즘입니다.