💸딱 하루, 인프런 천원샵 오픈!

[인프런 워밍업 클럽 스터디 3기] 1주차 미션 - 운영체제

[인프런 워밍업 클럽 스터디 3기] 1주차 미션 - 운영체제

운영체제


while(true){
      wait(1); // 1초 멈춤
      bool isActivated = checkSkillActivated(); // 체크
    }
  1. 위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다.


    이 방식은 폴링방식입니다.
    1초마다 체크하기 때문에 성능에 좋지 않습니다.
    이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?

    스킬을 사용했는지 1초마다 체크를 하는게 아닌, 스킬을 사용하면 인터럽트를 발생하여

    스킬을 사용했다고 알려줄 수 있도록 해야 합니다.

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

    프로그램은 처리 하는 코드를 꺼내 사용할 수 있도록 저장해 둔 정적인 단위를 프로그램이라고 하며,
    프로세스는 이 프로그램이 처리를 위해서 메모리로 올라와서 처리되는 처리 단위를 프로세스라고 합니다. 프로세스는 코드, 데이터, 스택, 힙, 그리고 PCB를 포함합니다.

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

    멀티프로그래밍은 복수의 프로그램을 메모리에 올려두고 번갈아 처리하면서 마치 프로그램 여러 개가 동시에 실행되고 있는 것처럼 보이도록 작동하는 것입니다.

    반면에 멀티프로세싱은 프로그램이 아닌 프로세스를 복수 개 올려두고 복수의 CPU가 시분할로 나뉘어 프로세스를 처리하는 것으로 병렬로 실행되는 것처럼 보이는게 아닌 진짜로 병렬 처리를 구현 한 것을 멀티프로세싱이라고 합니다.

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

    운영체제는 프로세스를 CPU에 할당했다가 해제해다가 하면서 프로세스를 처리할 수 있도록 하는데, 이 할당/해제 작업을 효율적으로 하기 위해서 CPU 스케줄링 기법을 사용합니다. 

    또한 복수 개의 프로세스를 할당/해제 하기 위해서 PCB라는 단위를 두고 여기에 프로세스 처리에 필요한 것들을 저장해둡니다. PCB에는 프로세스의 상태, 레지스터, 스케줄링 정보, 메모리 관련 정보들을 저장합니다.

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

컨텍스트 스위칭이란 프로세스가 CPU가 할당되었다가 해제되었다가 하는 것으로 처리되는 내용이 바뀌는(Switching) 것입니다. 현재 프로세스 상태를 저장하고, 현재 프로세스의 PCB에 정보들을 젖아합니다. 그리고 새 프로세스의 PCB를 불러와서 이전 상태를 복원합니다. 컨텍스트 스위칭은 인터럽트가 발생했을 때나 할당된 타임 슬라이스가 종료되었을 때 발생합니다. 이 때, 컨텍스트 스위칭이 너무 빈번하게 발생하면 오버헤드가 많이 발생하여 처리 속도가 오히려 느려질 수 있습니다.

 

댓글을 작성해보세요.


채널톡 아이콘