거의 모든 코드가 운영체제 위에서 실행되므로 운영체제의 작동방식에 대한 지식은 적절하고 효율적이며 안전한 프로그래밍에 중요하다.
교재 웹 사이트 : http://www.os-book.com
교재를 지원하는 웹 사이트 : http://www.wiley.com/college/silberschatz 에서 소스코드, 삽화, 참고문헌 등을 볼 수 있다.
퍼스트북 : http://firstbook.kr/ 홈페이지 -> 자료실 -> 데이터파일에 Appendix B, C, D와 Additional excercises 제공
운영체제는 사용자와 컴퓨터 하드웨어 사이에서 중개자 역할을 한다.
운영체제의 목적은 사용자가 프로그램을 편리하고 효율적으로 수행할 수 있는 환경을 제공하는 데 있다.
운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어이다.
운영체제의 근본적인 책임은 cpu, 메모리 및 입출력 장치와 저장장치와 같은 자원들을 프로그램에 할당하는 것이다.
컴퓨터 시스템은 대개 네 가지 구성요소인 하드웨어, 운영체제, 응용 프로그램, 사용자로 구분할 수 있다.
응용 프로그램인 컴파일러, 웹 브라우저 등은 사용자의 문제를 해결하기 위해 자원이 어떻게 사용될지를 정의한다.
운영체제는 다양한 사용자를 위해 다양한 응용 프로그램 간의 하드웨어 사용을 제어하고 조정한다.
컴퓨터 관점에서 운영체제는 하드웨어와 가장 밀접하게 연관된 프로그램이다. 운영체제는 cpu 시간, 메모리, 입출력 장치들 자원의 관리자로서 동작한다.
컴퓨터 시스템의 기본 목표는 프로그램을 실행하고 사용자의 문제를 더욱 쉽게 해결할 수 있게 하는 것이다.
컴퓨터 하드웨어는 이 목표를 가지고 구성되는데 하드웨어만으로는 사용하기가 어려우므로, 자원을 할당하거나 입출력 장치 제어와 같은 기능을 하는 응용 프로그램이 필요하다. 이러한 기능들을 하는 하나의 소프트웨어가 운영체제이다.
운영체제는 일반적으로 컴퓨터에 항상 실행되는 프로그램인 커널, 시스템을 관리하는 데 도움이 되는 시스템 프로그램, 시스템 작동과 관련되지 않은 모든 프로그램을 포함하는 응용 프로그램으로 구성되어 있다.
현대의 범용 컴퓨터 시스템은, 하나 이상의 cpu와 공통 버스(구성요소와 공유 메모리 사이의 액세스를 제공)를 통해 연결된 여러 장치 컨트롤러(예: 디스크 드라이브, 오디오 장치, 그래픽 디스플레이)로 구성된다.
일반적으로 운영체제에는 각 장치 컨트롤러마다 장치 드라이버가 있다.
장치 드라이버는 운영체제에 장치에 대한 인터페이스를 제공한다.
cpu와 장치 컨트롤러는 병렬로 실행되어 메모리 사이클을 놓고 경쟁한다.
입출력 작업을 시작하기 위해 장치 드라이버는 장치 컨트롤러의 적절한 레지스터에 값을 적재한다.
장치 컨트롤러는 이러한 레지스터의 내용을 검사하여 수행할 작업을 결정한다. (ex. 키보드에서 문자 읽기)
컨트롤러는 장치에서 로컬 버퍼로 데이터 전송을 시작한다.
그런 다음 장치 드라이버는 데이터에 대한 포인터를 반환하며 운영체제의 다른 부분에 제어를 넘긴다.
컨트롤러는 드라이버에게 작업을 완료했다는 사실을 인터럽트를 통해 알린다.
하드웨어는 어느 순간이든 시스템 버스를 통해 cpu에 신호를 보내 인터럽트를 발생시킬 수 있다.
인터럽트는 다양한 목적으로 사용되며 운영체제와 하드웨어의 상호 작용 방식의 핵심 부분이다.
cpu가 입터럽트 되면, cpu는 하던 일을 중단하고 즉시 인터럽트를 위한 서비스 루틴이 위치한 시작 주소로 실행을 옮긴다.
항상 잘 보고 있습니다~
-선플위원회-