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

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

운영체제

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

while(true){
      wait(1); // 1초 멈춤
      bool isActivated = checkSkillActivated(); // 체크
    }
  • 인터럽트 방식

  • 인터렙트 방식은 작업이 완료되었는지 계속해서 확인하지 않고 비동기적으로 동작하기 때문에 폴링 방식보다 성능이 좋음

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

  • 프로그램(애플리케이션, 앱)

    • 하드디스크 등과 같은 저장장치(HDD, SSD)에 저장된 명령문의 집합체

    • Windows 운영체제에서는 .exe 파일의 모습

    • 컴퓨터 관점에서 프로그램은 저장 장치만 사용하는 수동적인 존재

  • 프로세스

    • 하드디스크에 저장된 프로그램이 메모리에 올라갔을 때 실행 중인 프로그램

    • 컴퓨터 관점에서 프로세스는 메모리도 사용하고 운영체제의 CPU스케줄링 알고리즘에 따라서 CPU도 사용,

      필요에 따라 입력과 출력을 하기 때문에 능동적인 존재

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

  • 멀티프로그래밍

    • 메모리에 여러 개의 프로세스가 올라온 것을 말함

  • 멀티프로세싱

    • CPU가 여러 개의 프로세스를 처리하는 것을 말함

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

  • PCB(Process Control Block) 

    • 프로세스가 만들어지면 운영체제는 해당 프로세스의 정보를 가지고 있는 PCB를 만들고 저장

    • PCB들은 연결리스트 자료구조로 저장

       

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

     

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

       

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

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

     

자료구조와 알고리즘

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

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

     

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

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

     

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

     

댓글을 작성해보세요.

채널톡 아이콘