[워밍업 클럽_CS 전공 스터디 2기] 1주차 미션

[워밍업 클럽_CS 전공 스터디 2기] 1주차 미션

운영체제

1.

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

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

 

  • 답변:

    인터럽트 방식을 사용합니다.


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

  • 답변:

    프로그램은 어플리케이션이나 exe 파일처럼 저장 장치에 저장된 명령문의 집합체이고, 프로세스는 메모리 위에 프로그램이 실행 중인 것을 말합니다.


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

  • 답변: 멀티 프로그래밍은 메모리에 여러 개의 프로세스가 올라와 있는 것이고, 멀티 프로세싱은 CPU가 여러 개의 프로세스를 처리하는 것을 말합니다.


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

  • 답변: 프로세스의 정보를 가지고 있는 PCB를 만들고, 저장합니다. PCB는 포인터, 프로세스 상태, 레지스터 정보, 메모리 관련 정보, CPU 스케쥴링 정보 등으로 구성되어 있습니다.


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

  • 답변: CPU에서 처리 중인 프로세스를 다른 프로세스로 교체하는 것을 말합니다.


 

자료구조와 알고리즘

  1. 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다.

    이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.

     

    • 답변: 배열을 선택하겠습니다. 우선 학생 수는 변동 사항이 크지 않고, 조회 및 수정하는 부분이 가장 많을 것이므로 인덱스를 이용해 빠르게 참조하고, 수정할 수 있는 배열이 적합하다고 생각합니다.


  2. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.

  • 답변: 들어온 순서대로 처리해야기 때문에 FIFO 선입선출 방식의 Queue(큐)를 선택하겠습니다.

 

댓글을 작성해보세요.

채널톡 아이콘