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

운영체제

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

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

cpu가 입출력 관리자에게 interrupt를 주어서 해당 프로세스 작업을 멈춘 후 다른 작업을 실행한다.

입출력 작업이 끝난다면 입출력 관리자는 cpu에게 신호를 보내고, cpu는 진행중인 프로세스 작업이 끝난 후 해당 프로세스를 실행한다.

 

 

 

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

     

프로그램은 저장장치에 있는 하나의 application을 의미하고 (명령문 집합체)

이 프로그램이 저장장치로부터 메모리에 올라와서 작업을 실행중이면 프로세스라고 말한다.

 

 

 

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

멀티 프로그래밍은 메모리에 여러개의 프로세스를 올려서 작업하는 것을 의미하고

멀티 프로세싱은 메모리에 올라온 프로세스들을 여러개의 cpu로 작업을 처리하는 것을 의미한다.

 

 

 

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

     

Process Control Block 을 사용한다.

 

 

 

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

운영체제가 스케줄링을 통해 CPU를 할당 할 프로세스를 바꾸는 작업을 말한다.

댓글을 작성해보세요.


채널톡 아이콘