인프런 워밍업 클럽 스터디 2기 CS 1주차 과제
운영체제
while(true){
wait(1); // 1초 멈춤
bool isActivated = checkSkillActivated(); // 체크
}
위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다.
이 방식은 폴링방식입니다.
1초마다 체크하기 때문에 성능에 좋지 않습니다.
이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?
(답): 인터럽트프로그램과 프로세스가 어떻게 다른가요?
(답): 프로그램은 하드디스크와 같은 저장장치에 저장된 명령문에 집합체이고, 프로세스는 프로그램이 메모리에서 실행중인 상태를 말한다.멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?
(답): 멀티프로그래밍은 메모리에 여러 프로세스가 올라온 것을 말하고, 멀티프로세싱은 CPU가 여러 프로세스를 처리하는 것을 말한다. 즉, 멀티프로그래밍은 메모리 관점이고 멀티프로세싱은 CPU 관점이다.운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?
(답): CPU 스케줄링컨텍스트 스위칭이란 뭔가요?
(답): CPU가 현재 실행중인 프로세스의 상태를 저장하고 다른 프로세스의 상태로 교체하여 실행하는 것을 말한다.자료구조와 알고리즘
여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다. 이때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? (
이유를 함께 적어주세요.)
(답): 해시테이블, 이유는 학생 이름을 이용하여 상수시간(O(1))의 성능으로 빠르게 학생 정보를 열람할 수 있기 때문이다.
연결리스트 또는 배열로 구현할 경우..
- 연결리스트로 구현한다면 저장/삭제에 용이하지만, 조회는 해당 인덱스까지 노드를 찾아가야 하기 때문에 O(n)의 성능이 발생
- 배열로 구현한다면, 조회는 인덱스를 이용하여 메모리 주소에 바로 접근이 가능하기 때문에 O(1), 저장/삭제에는 배열 특성상 새로운 메모리 공간을 확보해야 하기 때문에 연결리스트에 비해 불리하다.여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.
(답): 큐, 이유는 큐 자료구조의 특성인 FIFO이기 때문이다. 처음 들어온 자료(First In)가 먼저 나가기(First Out) 때문
댓글을 작성해보세요.