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

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

운영체제

 

  1. 인터럽트 방식을 사용하는게 좋을 것 같습니다. 인터럽트 방식을 사용하면 스킬 사용 시점에만 CPU가 작업을 처리하므로 불필요한 반복 체크를 없앨 수 있고, 이벤트가 발생할 때만 즉시 반응하므로 성능에도 효율적으로 사용할 수 있을 것 같습니다.


  1. 프로그램은 컴퓨터 관점에서 저장장치만 사용하는 수동적인 존재이고, 프로세스는 메모리도 사용하고 CPU도 사용하고 필요에 따라 입출력을 하는 능동적인 존재입니다.


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

멀티프로세싱은 CPU의 관점으로 CPU가 여러 개의 프로세스를 처리하는 것입니다.


  1. 프로세스 제어 블록(PCB, Process Control Block)에 저장하고, 이를 프로세스 테이블이라는 데이터 구조로 관리합니다.


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


자료구조와 알고리즘

  1. 저는 배열을 사용할 것 같습니다, 학생의 정보는 학기 초에 일괄로 받은 후 정리해서 저장을 하기 때문에, 정보가 바뀔 일이 많이 없기 때문입니다. 또한 학생의 수는 정해져 있기 때문에 인덱스로 관리도 용이할 것 같고, 데이터 참조시에는 O(1)의 시간복잡도를 가지고 있기 때문입니다. 크기도 고정이기에 학생의 수가 변동이 크지않기에 배열을 선택하는게 낫다고 생각하였습니다.


  1. 주문이 들어온 순서대로 처리가 된다면 선입선출의 구조로 되어있는 큐(Queue)를 사용할 것 같습니다. 큐는 말 그대로 먼저 들어 온 것이 먼저 나가기 때문에, 문제의 "들어온 순서대로 처리"에 맞다고 생각합니다.

     

댓글을 작성해보세요.

채널톡 아이콘