🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

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

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

운영체제

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

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

  • 인터럽트 방식을 사용하면 문제를 해결할 수 있음

    • 인터럽트 방식은 입출력이 완료되면 CPU에 인터럽트 신호를 보내 현재 실행 중인 프로세스를 중단하고 인터럽트 서비스 루틴을 실행하여 인터럽트를 처리 후 프로세스를 재실행


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

  • 프로그램 : 하드디스크에 저장되어 있는 실행파일(.exe 파일)

    • 실행파일은 해당 프로그램의 동작에 대한 코드로 이루어져 있음

  • 프로세스 : 프로그램을 실행하여 해당 프로그램이 하드디스크에서 메모리로 올려져서 실행 중인 프로그램


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

  • 멀티 프로그래밍 : 하나의 CPU에서 여러 개의 프로세스를 메모리에 올려서 처리하는 기술

  • 멀티 프로세싱 : 여러 개의 CPU를 이용하여 프로세스를 처리하는 기술


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

     

  • 스케쥴링을 이용하여 각 프로세스에 CPU를 할당 및 해제하여 프로세스의 실행을 관리

    • 스케쥴링에 필요한 프로세스의 정보를 각 프로세스의 PCB에 저장


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

  • CPU에 실행 중인 프로세스를 다른 프로세스로 교체하는 기술

    • 운영체제에서 CPU에 실행 중인 프로세스의 점유 시간이 끝나면 인터럽트를 발생시켜 프로세스의 상태를 PCB에 저장한 후 메모리에 저장하고 교체할 프로세스의 PCB를 메모리에서 CPU에 가져와 실행시켜줌


댓글을 작성해보세요.

채널톡 아이콘