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

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

  1.  

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

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

  • 인터럽트

  • 폴링 방식은 일정 간격마다 상태를 확인하므로 불필요한 CPU 리소스를 낭비 -> 인터럽트 방식을 사용하여

    하드웨어 또는 소프트웨어에서 발생하는 신호로, 이벤트가 발생했을 때 운영체제가 즉시 반응하도록 함

 

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

  • 프로그램: 실행 파일이나 코드와 같은 정적인 개념. 하드디스크 등에 저장된 실행 가능한 파일.

  • 프로세스: 프로그램이 실행될 때 운영체제로부터 메모리를 할당받아 동작하는 개체. 실행 중인 프로그램

 

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

  • 멀티프로그래밍: 여러 개의 프로그램이 메모리에 올라가 있지만 CPU는 한 번에 하나씩 실행하며, 빠르게 전환하면서 실행하는 방식

  • 멀티프로세싱: 두 개 이상의 CPU 또는 코어가 여러 프로세스를 동시에 실행하는 방식. 실제 병렬 처리 가능

 

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

  • 프로세스의 실행과 스케줄링을 위해 PCB(Process Control Block), 스케줄러, 컨텍스트 스위칭 등을 사용

  • PCB: 프로세스의 정보를 저장하는 데이터 구조로, 프로세스 ID, 상태, 레지스터 값, 메모리 정보 등을 포함

  • 스케줄러: CPU 할당 순서를 결정하는 알고리즘을 사용하여 프로세스의 실행을 조율

  • 컨텍스트 스위칭: 실행 중인 프로세스의 상태를 저장하고, 다른 프로세스를 실행하기 위해 이전 상태를 복원하는 과정

 

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

     

    • 운영체제가 현재 실행 중인 프로세스를 중단하고 다른 프로세스를 실행하기 위해 레지스터, 프로그램 카운터, 메모리 정보 등을 저장하고 복구하는 과정

댓글을 작성해보세요.

채널톡 아이콘