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

운영체제

1.

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

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

: 폴링방식은 CPU가 주기적으로 장치의 상태를 검사해야 하기 때문에 성능이 좋지 않습니다. 따라서 예외상황이 발생시 CPU에게 요청을 하는 인터럽트 방식을 사용하는 편이 좋습니다.

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

==> 프로그램 : 프로그래머가 작성한 명령어들의 집합체

==> 프로세스 : 프로그램이 메모리에 적재되어 실행중인 상태 , 프로세스는 메모리와 CPU를 사용하며 CODE영역,STACK영역,HEAP영역 , STACK영역으로 나뉘어진다.

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

==>멀티프로그래밍 : 멀티프로그래밍은 메모리에 여러 프로세스를 적재하여 실행시키는것을 멀티프로그래밍이라 한다.

==>멀티프로세싱 : CPU가 여러개의 프로세스를 처리하는것을 의미한다.

 

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

==> PCB(Process Control Block)을 사용한다. PCB는 프로세스가 생성될 때 운영체재가 생성하여 포인터,프로세스 상태 , 스케쥴링 정보 , 프로그램 카운터 , 레지스터 정보 등을 가지고 있다.

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

==> 컨텍스트 스위칭이란 CPU를 사용중인 프로세스를 중단하고 다른 프로세스로 교체할 때 실해중이던 프로세스의 상태를 저장하고 다른 프로세스의 상태를 불러오는 작업을 말한다.

 

 

자료구조

 

 

  1. 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다. 이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요?

    이유를 함께 적어주세요.

     

    ==> 교실의 학생정보같은경우 만약 주소 , 나이 , 성별 등 자주 변경될일 없는 정보들이 저장되는 학생정보인 경우 배열을 사용할 것이고 , 성적이나 주간으로 자주 변경해야 하는 내용들이 저장되어 있는 정보들이 라면 수정에 용이한 링크드리스트를 사용할 것입니다.

     

     

  2. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.
    ==> 순서대로 처리하기위해서는 먼저들어온 데이터가 먼저 처리되는 FIFO방식인 Queue를 사용할 것 같습니다.

댓글을 작성해보세요.

채널톡 아이콘