inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

인프런 워밍업 클럽 스터디 2기 CS | 1주차 미션

연이
0

운영체제

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

while(true){
      wait(1); // 1초 멈춤
      bool isActivated = checkSkillActivated(); // 체크
    }
  1. 프로그램과 프로세스가 어떻게 다른가요?

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

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

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

     

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

       

    • 컨텍스트 스위칭이 발생할 때 PCB에서 프로세스 상태, 프로그램 카운터, 레지스터 정보, 메모리 관련 정보 등이 변경

    • 컨텍스트 스위칭이 발생하는 이유는 CPU점유 시간을 초과했거나, I/O요청이 있거나 다른 종류의 인터럽트가 있을 때 발생

     

자료구조와 알고리즘

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

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

     

    • 배열을 선택할 것입니다. 학생 정보 조회가 가장 빈번한 작업일 것으로 예상되며, 배열은 인덱스를 통합 빠른 접근으로 시간복잡도가 O(1)이기 때문입니다. 전학을 오거나 가는 경우처럼 데이터가 추가되거나 삭제가 될 수 있겠지만 이는 상대적으로 드문 이벤트입니다. 데이터의 크기가 크게 변경되지 않을 것이라 예상되어 연결리스트보다 배열이 적합할 것같습니다.

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

     

    • FIFO 선입선출 방식의 Queue를 선택할 것입니다. 주문을 먼저한 손님 순으로 서비스가 제공되어야하기 때문입니다.

     

답변 0