반효경 교수님의 2014년 및 2017년 강의를 듣고 이를 정리한 문서입니다.
강의 전체에 대해 노션으로 정리해둔 문서도 있습니다. 아래에 태그를 통해 참고하세요
강의목차
- 운영체제 개요
- 컴퓨터시스템의 구조
- 프로세스 관리
- CPU 스케줄링
- 병행 제어
- 데드락
- 메모리 관리
- 가상 메모리
- 파일 시스템
- 입출력 시스템
- 디스크 관리
운영체제란?
컴퓨터의 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층으로 모든 컴퓨터 시스템의 필수적인 부분

운영체제의 목적
1. 컴퓨터 시스템의 자원(프로세서, 기억장치, 입출력 장치)을 효율적으로 관리(효율성 + 형평성)
2. 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행하므로 사용자는 컴퓨터 시스템을 편리하게 사용할 수 있도록 관리
운영체제의 분류
동시 작업
- 단일 작업(single tasking)
- 한 번에 하나의 작업만 수행
- ex) MS-DOS 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음, 과거의 엘리베이터나 전화기에서 사용
- 다중 작업(multi tasking)
- 동시에 두 개 이상의 작업 처리
- ex) UNIX, MS Windows 등에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행할 수 있음, 현대의 스마트폰 운영체제
사용자
- 단일 사용자(MS-DOS, MS Windows)
- 다중 사용자(UNIX, NT server 등)
처리 방식
- 일괄 처리(batch processing) : 작업을 일괄적으로 모아서 처리
- ex) punch card 처리 시스템( 초기 )
- 시분할 (time sharing) : 여러 작업을 일정한 시간 단위로 분할하여 사용(interative하게 느끼도록 만든다)
- 영화같은 것은 deadline은 필요없지만
- 네비게이션과 같은 것은 deadline을 두고 실시간 서비스를 지켜주기 위한 기능이 필요
운영체제의 종류
유닉스(UNIX)
- C언어로 구성
- 높은 이식성
- 최소한의 커널 구조
- 복잡합 시스템에 맞게 확장 용이
- 소스 코드 공개
- 프로그램 개발 용이
- 다양한 버전
- Linux
- SunOS, Solaris, System V, FreeBSD
DOS(Disk Operation System) - 개인용 PC를 위한 용도로 제작
- MS에서 단일 사용자용 운영체제, 메모리 관리 능력의 한계 (주기억장치 : 640KB)
Windows : DOS위에서 동작하다가 독자적 OS로 운영
- DOS용 응용 프로그램과 호환성 제공
- 불완정성 → 현재는 괜찮아졌다.
- GUI기반 운영체제
Linux
- 여러 환경에서 활용한다.
- 안드로이드 커널도 linux를 사용하는 중
반효경 교수님의 2014년 및 2017년 강의를 듣고 이를 정리한 문서입니다.
강의 전체에 대해 노션으로 정리해둔 문서도 있습니다. 아래에 태그를 통해 참고하세요
강의목차
- 운영체제 개요
- 컴퓨터시스템의 구조
- 프로세스 관리
- CPU 스케줄링
- 병행 제어
- 데드락
- 메모리 관리
- 가상 메모리
- 파일 시스템
- 입출력 시스템
- 디스크 관리
운영체제란?
컴퓨터의 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층으로 모든 컴퓨터 시스템의 필수적인 부분

운영체제의 목적
1. 컴퓨터 시스템의 자원(프로세서, 기억장치, 입출력 장치)을 효율적으로 관리(효율성 + 형평성)
2. 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행하므로 사용자는 컴퓨터 시스템을 편리하게 사용할 수 있도록 관리
운영체제의 분류
동시 작업
- 단일 작업(single tasking)
- 한 번에 하나의 작업만 수행
- ex) MS-DOS 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음, 과거의 엘리베이터나 전화기에서 사용
- 다중 작업(multi tasking)
- 동시에 두 개 이상의 작업 처리
- ex) UNIX, MS Windows 등에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행할 수 있음, 현대의 스마트폰 운영체제
사용자
- 단일 사용자(MS-DOS, MS Windows)
- 다중 사용자(UNIX, NT server 등)
처리 방식
- 일괄 처리(batch processing) : 작업을 일괄적으로 모아서 처리
- ex) punch card 처리 시스템( 초기 )
- 시분할 (time sharing) : 여러 작업을 일정한 시간 단위로 분할하여 사용(interative하게 느끼도록 만든다)
- 영화같은 것은 deadline은 필요없지만
- 네비게이션과 같은 것은 deadline을 두고 실시간 서비스를 지켜주기 위한 기능이 필요
운영체제의 종류
유닉스(UNIX)
- C언어로 구성
- 높은 이식성
- 최소한의 커널 구조
- 복잡합 시스템에 맞게 확장 용이
- 소스 코드 공개
- 프로그램 개발 용이
- 다양한 버전
- Linux
- SunOS, Solaris, System V, FreeBSD
DOS(Disk Operation System) - 개인용 PC를 위한 용도로 제작
- MS에서 단일 사용자용 운영체제, 메모리 관리 능력의 한계 (주기억장치 : 640KB)
Windows : DOS위에서 동작하다가 독자적 OS로 운영
- DOS용 응용 프로그램과 호환성 제공
- 불완정성 → 현재는 괜찮아졌다.
- GUI기반 운영체제
Linux
- 여러 환경에서 활용한다.
- 안드로이드 커널도 linux를 사용하는 중