[워밍업 클럽 3기 CS 전공지식] 1주차 운영체제 미션

[워밍업 클럽 3기 CS 전공지식] 1주차 운영체제 미션

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

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

  • 인터럽트 서비스 루틴(ISR)을 이용해야 합니다.

    •  매번 확인하는 것이 아닌 플레이어 스킬 사용 작업을 맡기고 CPU 는 다른 작업을 하러 갑니다.

    • 사용했다는 신호를 CPU에게 전달을 하면 인터럽트 서비스 루틴을 실행시켜 작업을 완료합니다.

 

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

  • 프로그램은 하드디스크에 저장된 실행 파일입니다.

  • 프로세스는 하드디스크에 저장된 프로그램이 메모리에 올라갔을 때, 실행 중인 프로그램입니다.

 

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

  • 멀티프로그래밍은 메모리에 여러 개의 프로세스를 올려서 처리하는 것입니다.

  • 멀티 프로세싱은 멀티 프로세서로 작업을 처리하는 것입니다.

    • 멀티 프로세서는 CPU를 한 개가 아닌 여러 개를 이용하는 것을 말합니다.

 

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

  • 프로세스가 만들어지면 운영체제는 해당 프로세스의 정보를 가지고 있는 PCB를 만들고 저장합니다.

  • 운영체제가 프로세스를 CPU에 할당할 때 해당 프로세스의 정보를 가지고 있는 PCB 를 읽어서 작업을 진행합니다.

 

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

  • 프로세스를 실행하는 중에 다른 프로세스를 실행하기 위해
    실행 중인 프로세스의 상태를 저장하고 다른 프로세스의 상태 값으로 교체하는 작업입니다.

 

 ※ 출처

[인프런 / 그림으로 쉽게 배우는 운영체제 (감자) / 섹션 1~3]

댓글을 작성해보세요.

채널톡 아이콘