Tech interview 1 ~10

  1. 프로세스의 정의를 설명하세요

프로세스는 실행 중인 프로그램을 의미하는 운영체제의 실행 단위로,

보조기억장치에 저장된 프로그램이 실행되면 생성됩니다.

프로세스는 PCB(Process Control Block)를 부여받고, 상태를 가지며,

메모리 상에 코드, 데이터, 스택, 힙 영역을 포함하는 독립적인 메모리 공간을 할당받습니다.

  1. 스레드는 무엇인가요?

스레드는 프로세스 내의 작업 단위입니다.

일반적으로 한 프로세스는 여러 개의 스레드를 가질 수 있으며,

스레드는 프로세스 내의 자원과 데이터를 공유합니다.

  1. 커널은 무엇인가요?

운영체제의 핵심 서비스를 담당하는 한 부분으로써,

하드웨어를 비롯한 자원을 보호하고 프로세스에 할당하며,

여러 프로세스의 실행 순서를 제어하고 통신을 돕는 등 프로세스의 실행을 관리합니다.

또한 페이징 등의 가상 메모리 기법을 통해 물리 메모리를 논리적인 단위로 관리하고,

파일 시스템을 통해 파일과 디렉터리를 관리하는 등의 역할을 수행합니다.

도식화

상태 전이 요약

  • 프로세스 상태:

    • new(생성) → ready(준비) → running(실행) → waiting(대기) → terminated(종료).

표로 보는 비교

구분
프로세스
스레드

정의

실행 중인 프로그램

프로세스 내 작업 단위

메모리

독립적(코드, 데이터, 스택, 힙)

프로세스 내 자원 공유

관리 단위

운영체제에서 자원 할당의 기본 단위

CPU 스케줄링의 최소 단위

핵심

  • 프로세스는 실행 중인 프로그램 전체,

  • 스레드는 그 안에서 실제로 일하는 작업자,

  • 커널은 이 모든 것을 관리하는 운영체제의 핵심 관리자입니다.

  1. 프로세스가 CPU를 활용하다가 입출력 작업을 만나면 어떻게 되나요?

1. 시스템 콜을 통한 입출력 요청

2. 프로세스 상태가 대기 상태로 변경(다른 프로세스가 실행될 기회를 얻게 됨)

3. 입출력 작업 수행

4. 완료 및 준비 상태로 전환

5. CPU 획득 및 실행 재개

  1. CPU 스케줄링이란 무엇인가요?

운영체제가 여러 프로세스 사이에서 CPU 자원을 효율적으로 할당하고 관리하는 작업을 의미합니다.

CPU 스케줄링 알고리즘을 통해 다중 프로세스 환경에서

CPU 사용을 조절하여 다양한 프로세스가 공정하게 실행되도록 하는 역할을 합니다.

(꼬리질문) CPU 스케줄링 알고리즘 중 아는 것이 있나요?

  1. 부팅이 무엇인가요? 부팅의 과정을 서술하세요

컴퓨터 부팅(Boot)은 컴퓨터를 시작하고 운영체제를 로드하는 과정을 의미합니다.

일반적인 부팅 과정은 다음과 같습니다:

1. 전원 인가

2. BIOS 시작*

3. 부트 로더 시작

5. 운영체제 적재

6. 운영체제 초기화 및 사용자 로그인

*BIOS 대신 UEFI(Unified Extensible Firmware Interface)가 사용되는 경우도 있습니다.

  1. 페이징은 무엇이며, 존재 이유는 무엇인가요?

페이징은 가상 메모리 관리 기술 중 하나로,

물리 주소를 프레임, 논리 주소를 페이지 단위로 분리하여 메모리를 관리하는 방법입니다.

페이징을 통해 외부 단편화를 제거할 수 있고,

프로세스 간 메모리 공간을 격리할 수 있게 됩니다

  1. 메모리가 크면 무엇이 좋은가요?

동시 실행 가능한 프로세스 수가 많아지기 때문에

프로그램 실행 속도, 멀티 태스킹 능력이 향상됩니다.

  1. 시스템 콜은 무엇이며, 존재 이유는 무엇인가요?

운영 체제의 커널이 제공하는 서비스를 응용 프로그램이 사용할 수 있도록 하는 인터페이스입니다.

시스템 콜이 존재하는 이유는 사용자 프로그램은 자원에 직접 접근할 수 없기 때문입니다.

하드웨어를 비롯한 자원에 접근하기 위해 사용하고

프로세스 간의 통신을 비롯한 프로세스 관리를 위해 시스템 콜을 호출합니다.

  1. 스래싱은 무엇이며, 어떻게 해결할 수 있을까요?

스래싱(Thrashing)은 컴퓨터 시스템에서 발생하는 문제 상황으로,

지나치게 많은 페이지 폴트(페이지 부재)로 인해

대부분의 시간을 페이지 교체 작업으로 소비하게 되는 현상을 나타냅니다.

스래싱이 발생하면 시스템 성능이 급격히 저하됩니다.

스래싱을 해결하기 위해 물리 메모리 크기를 확장하거나, 페이지 교체 알고리즘을 변경하거나,

동시 실행 중인 프로세스의 수를 줄이거나, 프로세스 우선순위를 조정하는 방식을 선택할 수 있습니다.

Last updated