컴퓨터 시스템은 여러개의 CPU와 장치 컨트롤러 구성되어 있고, 공통 버스로 이어저 메모리를 공유함
부트스트랩 프로그램: PC 초기화 프로그램(ROM, RRPROM에 저장되어 있음)
역할
장치 컨트롤러는 CPU에 이벤트 발생을 알리기 위해 인터럽트를 발생시킨다.
CPU는 인터럽트를 확인하고 발생한 이벤트를 처리한다.
컴퓨터는 여러 작업을 동시에 처리하는데, 당장 처리해야할 일이 생기면, 인터럽트를 발생시켜, 기존 작업을 중단 시키고, 일을 처리하며, 일이 마무리되면 기존 작업을 실행한다.
소프트웨어에서 발생하는 인터럽트는 트랩이라고 함
이 인터럽트는 시스템 콜이라는 특별한 명령을 이용하여 발생시킬 수 있음
기억장치 또한 여러 입출력 장치 중 하나일 뿐이다. 운영체제는 각 장치 컴트롤러를 제어하기 위한 장치 드라이버를 가지고 있다.
종류: 비대칭 멀티프로레싱, 대칭 멀티 프로세싱
모든 프로세서들은 하나의 메모리를 공유하고 동일한 작업을 병렬적으로 수행
각프로세서는 독립적으로 레지스터와 캐시를 가지고 있음
OS의 가장 중요한 부분 중 하나는 멀티프로그램 능력임
멀티 프로그래밍은 여러 프로그램을 메모리에 로드해두고(프로세스), 프로세스가 대기 상태가 되면 다른 프로세스의 작업을 수행하는 시스템이다.
이것은 CPU의 사용 효율을 높힐 수 있음
여기서 확장된 시스템이 시분할 시스템 or 멀티테스킹이라고 부름
운영체제는 인터럽트 주도적이며, 인터럽트가 없다면 시스템은 조용히 인터럽트를 기다림
사용자 프로그램이 임의로 하드웨어에 접근하여 인터럽트를 보내면 큰 문제가 생길 것이다. 따라서 방지가 필요하다.
User Mode, Kernel Mode가 존재
User Mode에서 Kernel Mode의 기능을 호출하고 싶으면, 시스템 콜을 이용해야 함
운영체제는 프로세스 관리를 위해 CPU에게 프로세스와 쓰레드를 스케줄링하고, 프로세스를 생성하거나 제거하는 활동을 한다. 뿐만 아니라 일시정지하거나 재실행하고, 프로세스의 동기화(Synchronization)와 통신도 제공한다.
컴퓨터 시스템에 있어 정말 중요한 부분, 굉장히 빠른 작은 저장 장치
자주사용 될 것 같은 데이터를 미리 담아놓고 사용