 
    인프런 워밍업 클럽 CS 3기 - 1주차 미션(운영체제)
운영체제
    while(true){
      wait(1); // 1초 멈춤
      bool isActivated = checkSkillActivated(); // 체크
    }위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?
- 인터럽트 방식을 사용하면 문제를 해결할 수 있음 - 인터럽트 방식은 입출력이 완료되면 CPU에 인터럽트 신호를 보내 현재 실행 중인 프로세스를 중단하고 인터럽트 서비스 루틴을 실행하여 인터럽트를 처리 후 프로세스를 재실행 
 
- 프로그램과 프로세스가 어떻게 다른가요? 
- 프로그램 : 하드디스크에 저장되어 있는 실행파일(.exe 파일) - 실행파일은 해당 프로그램의 동작에 대한 코드로 이루어져 있음 
 
- 프로세스 : 프로그램을 실행하여 해당 프로그램이 하드디스크에서 메모리로 올려져서 실행 중인 프로그램 
- 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요? 
- 멀티 프로그래밍 : 하나의 CPU에서 여러 개의 프로세스를 메모리에 올려서 처리하는 기술 
- 멀티 프로세싱 : 여러 개의 CPU를 이용하여 프로세스를 처리하는 기술 
- 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요? 
- 스케쥴링을 이용하여 각 프로세스에 CPU를 할당 및 해제하여 프로세스의 실행을 관리 - 스케쥴링에 필요한 프로세스의 정보를 각 프로세스의 PCB에 저장 
 
- 컨텍스트 스위칭이란 뭔가요? 
- CPU에 실행 중인 프로세스를 다른 프로세스로 교체하는 기술 - 운영체제에서 CPU에 실행 중인 프로세스의 점유 시간이 끝나면 인터럽트를 발생시켜 프로세스의 상태를 PCB에 저장한 후 메모리에 저장하고 교체할 프로세스의 PCB를 메모리에서 CPU에 가져와 실행시켜줌 
 
댓글을 작성해보세요.
