[워밍업 클럽 CS 3기] 1주차 미션 (운영체제)

    while(true){
      wait(1); // 1초 멈춤
      bool isActivated = checkSkillActivated(); // 체크
    }

 

  1. 위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?

인터럽트 방식을 이용하여 이를 해결할 수 있다. 폴링 방식처럼 계속 주기적으로 체크하지 않고, 스킬을 사용하였을 때에 CPU에게 신호를 주고, 이 신호를 받았을 때만 CPU가 ISR(Interrupt Service Routine)을 실행하여 작업하면, 성능을 높일 수 있다.

 

  1. 프로그램과 프로세스가 어떻게 다른가요?

프로그램이란, HDD(하드디스크)와 같은 저장장치에 저장된 명령문의 집합체이다.

프로세스란, 실행중인 프로그램으로, 자세히는 HDD에 저장된 프로그램이 메모리(RAM)에 올라가 실행 중인 프로그램을 의미한다.

 

  1. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?

멀티프로그래밍이란, 메모리에 하나의 프로세스가 아니라 여러 개의 프로세스를 올려 처리하는 기술이다.

멀티프로세싱이란, 여러개의 CPU(멀티프로세서)를 사용하여 여러 작업을 각 CPU가 맡아 동시에 처리하는 기술이다.

 

  1. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?

PCB(Process Control Block)을 통해 프로세스를 관리한다.

 

  1. 컨텍스트 스위칭이란 뭔가요?

컨텍스트 스위칭은 프로세스를 실행하는 중에 다른 프로세스를 실행하기 위하여 실행중인

프로세스의 상태를 저장하고, 다른 프로세스의 상태값으로 교체하는 작업이다.

 

댓글을 작성해보세요.


채널톡 아이콘