본 글은 다음 강의를 들으며 정리한 내용입니다.
강의 정보 : 운영체제 / 이화여대 반효경
강의 링크
컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
좁은 의미의 운영체제(커널)
넓은 의미의 운영체제
컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
운영체제는 동시 사용자 / 프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공
하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행
컴퓨터 시스템의 자원을 효율적으로 관리
프로세서, 기억장치, 입출력 장치등의 효율적 관리
사용자 및 운영체제 자신의 보호
프로세스, 파일, 메시지 등을 관리
단일 작업 (single tasking)
다중 작업 (multi tasking)
단일 사용자 (single user)
다중 사용자 (multi user)
여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
일괄 처리 시스템에 비해 짧은 응답 시간을 가짐
interactive한 방식
실시간 (Realtime OS)
실시간 시스템의 개념 확장
아래 용어들은 컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻한다.
Multitasking
Multiprogramming : 여러 프로그램이 메모리에 올라가 있음을 강조
Time sharing : CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
Multiprocess
Multiprocessor : 하나의 컴퓨터에 CPU (processor)가 여러 개 붙어 있음을 의미
코드의 대부분을 C언어로 작성 (C언어는 유닉스를 만들기 위해 만들어짐)
높은 이식성
최소한의 커널 구조
복잡한 시스템에 맞게 확장 용이
소스 코드 공개
프로그램 개발에 용이
다양한 버전
MS사에서 1981년 IBM-PC를 위해 개발
단일 사용자용 운영체제, 메모리 관리 능력의 한계 (주 기억 장치 : 640KB)
MS사의 다중 작업용 GUI 기반 운영 체제
Plug and Play, 네트워트 환경 강화
DOS용 응용 프로그램과 호환성 제공
불안정성
풍부한 지원 소프트웨어
본 과목은 OS 사용자 관점이 아니라 OS 개발자 관점에서 수강해야 한다.
대부분의 알고리즘은 OS 프로그램 자체의 내용
인간의 신체가 뇌의 통제를 받듯 컴퓨터 하드웨어는 운영체제의 통제를 받으며 그 운영체제는 사람이 프로그래밍하는 것이다.
본인을 Windows XP나 Linux 같은 운영체제라고 생각하고 본인의 할 일이 무엇인지를 생각해보면 본 과목에서 배울 내용이 무엇인지 명확히 알 수 있다.