[스터디] 인프런 CS 전공지식 스터디 2기_(1주차)

[스터디] 인프런 CS 전공지식 스터디 2기_(1주차)

자료구조와 알고리즘

발자국

Tistory link

https://narmhye.tistory.com/265

 

미션

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

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

 

일반적인 배열인 Array 구조를 선택할 것이다.

학생 수는 초기 구성 이후 일정 기간 동안 변동이 생길 경우가 드물기 때문에,

정보 열람이 프로그램의 주 사용 기능이 될 것이다.

따라서 삽입/삭제보다는 참조의 효율이 좋은 array를 선택하였다.

 

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

LinkedList로 구현한 Queue를 선택할 것이다.

주문의 삽입/삭제의 처리가 주로 이루어져 효율적인 LinkedList를 기반으로,

FIFO의 구조를 가지는 Queue를 선택하였다.

 

 

운영체제

발자국

Tistory link

https://narmhye.tistory.com/266

 

미션

1.

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

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

인터럽트

 

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

프로그램은 명령문의 집합체로 수동적인 존재이다.

프로세스는 실행중인 프로그램으로 메모리, CPU, 입출력 장치를 사용하는 능동적인 존재이다.

 

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

멀티프로그래밍은 메모리의 관점에서 여러 개의 프로세스가 올라온 것,

멀티프로세싱은 CPU 관점에서 여러 개의 프로세스를 처리한 것

 

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

PCB를 연결리스트로 저장하여 사용.

 

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

기존 프로세스 실행 중, 다른 프로세스를 실행하기 위하여 기존의 프로세스 상태 저장 후, 다른 프로세스의 상태값으로 변경하는 것 - PCB 내용을 셋팅

댓글을 작성해보세요.

채널톡 아이콘