[인프런 워밍업 클럽 2기 CS] 1주차 미션
[운영체제]
while(true){
wait(1); // 1초 멈춤
bool isActivated = checkSkillActivated(); // 체크
}
이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다.
이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?
=> 인터럽트 방식, 스킬이 사용 되었을 경우 응답을 받는 방식으로 이용한다.프로그램과 프로세스가 어떻게 다른가요?
=> 프로그램은 .exe와 같은 실행 파일을 의미하고, 이 .exe와 같은 실행 파일을 실행 했을 때 메모리에 올라가 실행 중인 프로그램 이다.멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?
=> 멀티프로그래밍은 메모리에 여러개의 여러 개의 프로세스가 올라가는 것이고, 멀티 프로세싱은 CPU가 여러개의 프로세스를 처리하는 것이다.운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?
=> 운영체제는 PCB에 담긴 프로세스의 정보를 사용하여 프로세스를 관리한다. 프로세스마다 PCB가 생성되고, 프로세스가 종료되면 PCB도 제거 된다. 이 PCB는 자료구조에서 배웠던 연결리스트로 구성되어 있다.컨텍스트 스위칭이란 뭔가요?
=> A 프로그램이 실행되고 있는 상태에서 B 프로그램이 실행 되도록 하는 것을 말한다. 이때 A 프로그램이 멈춘 시점에서 다시 시작 될 수 있도록 PCB A에 A 프로그램의 상태 값을 저장한 뒤, B 프로그램을 실행하기 위해 PCB B에 있는 이전 상태 값으로 CPU 레지스터 값을 설정한다.
[자료구조와 알고리즘]
여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다.
이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.
=> 해시테이블, 학생은 학생 고유의 학번을 가지고 있기 때문에 학번을 Key로 하는 해시 테이블을 사용할 것입니다.
해시테이블은 동적으로 크기를 변화시키는데 유연하여 전학을 오고 갈 수 있는 학생의 정보를 자유롭게 삽입 및 삭제가 가능합니다. 또한, O(1)의 시간복잡도를 가지기 때문에 빠르게 학생의 정보를 검색할 수 있기 때문에 해시테이블을 선택하였습니다.여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다.
이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.
=> 큐(Queue), 큐는 선입선출로 먼저 들어온 값이 먼저 나가는 특징을 가지고 있습니다. 주문이 들어온 순서대로 처리되는 프로그램을 개발하기 위해선 큐를 선택하는 것이 적합한 자료구조라고 생각합니다.
알고리즘 강의 링크 👉그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
운영체제 강의 링크 👉그림으로 쉽게 배우는 운영체제
댓글을 작성해보세요.