[인프런 워밍업 클럽 3기 CS] 운영체제 1주 차 미션

[인프런 워밍업 클럽 3기 CS] 운영체제 1주 차 미션

운영체제

1. 폴링 방식을 대체할 수 있는 방법은?

 

폴링 방식은 CPU를 불필요하게 사용하므로 이벤트 기반 방식 또는 인터럽트 방식으로 개선할 수 있습니다.

• 이벤트 기반 방식: 특정 이벤트가 발생할 때만 실행되도록 설정 (예: 버튼 클릭 이벤트)

• 인터럽트 방식: CPU가 특정 조건이 발생했을 때만 중단하고 처리 (예: 하드웨어 인터럽트, 소프트웨어 인터럽트)

 

해결 방법 예시:

document.addEventListener("skillActivated", () => {

    console.log("Skill used!");

});

이렇게 하면 skillActivated 이벤트가 발생할 때만 실행됩니다.

2. 프로그램과 프로세스의 차이점

• 프로그램: 실행 가능한 파일 (코드, 데이터, 리소스 포함)

• 프로세스: 실행 중인 프로그램 (CPU, 메모리, 리소스를 할당받음)

 

프로그램은 정적인 파일, 프로세스는 동적으로 실행되는 개체입니다.

3. 멀티프로그래밍 vs 멀티프로세싱

• 멀티프로그래밍: 하나의 CPU에서 여러 개의 프로그램을 실행하기 위해 CPU 스케줄링을 사용

• 예: 한 프로세스가 I/O 작업을 할 때, 다른 프로세스가 CPU 사용

• 멀티프로세싱: 여러 개의 CPU(코어)에서 여러 프로세스를 동시에 실행

• 예: 멀티코어 CPU를 활용한 병렬 처리

 

멀티프로그래밍은 CPU를 최대한 활용, 멀티프로세싱은 성능을 극대화하는 방식입니다.

4. 운영체제의 프로세스 관리 기법

• PCB(Process Control Block): 프로세스 정보를 저장하는 데이터 구조

• 스케줄러: 프로세스 실행 순서를 결정하는 시스템 (예: FCFS, RR, SJF)

• 인터럽트: 프로세스의 상태를 변경하는 시스템 이벤트

• 메모리 관리: 프로세스의 주소 공간을 관리 (예: 가상 메모리, 페이징)

 

운영체제는 PCB, 스케줄링, 메모리 관리 등을 활용하여 프로세스를 제어합니다.

5. 컨텍스트 스위칭이란?

• CPU가 실행 중인 프로세스를 변경할 때, 기존 프로세스의 상태를 저장하고 새로운 프로세스를 로드하는 과정

• PCB에 레지스터, 스택 포인터, 프로그램 카운터 등을 저장했다가 복원

 

컨텍스트 스위칭은 멀티태스킹의 필수 요소이지만, 오버헤드(비용)가 발생합니다.

 

댓글을 작성해보세요.

채널톡 아이콘