운영체제
- 정의
- 사용자와 하드웨어 사이의 중간 매개체로 응용 프로그램의 실행을 제어하고, 자원을 할당 및 관리하며, 입출력 제어 및 데이터 관리와 같은 서비스를 제공하는 소프트웨어
- 역할
- 하드웨어 및 사용자, 응용 프래그램, 시스템 프로그램 사이에서 인터페이스를 제공
- 프로세서, 메모리, 입출력장치, 통신장치 등 컴퓨터 자원을 효과적으로 활용하려고 조정, 관리
- 메일 전송, 파일 시스템 검사, 서버 작업 등 높은 수준의 서비스를 처리하는 응용 프로그램을 제어
- 다양한 사용자에게서 컴퓨터 시스템을 보호하려고 입출력을 제어하며 데이터를 관리
발전 목적
- 편리성
- 사용자에게 편리한 환경 제공
- 프로그램 개발 환경뿐만 아니라 응용 프로그램에 대한 사용자 인터페이스, 즉 사용자와 컴퓨터 시스템이 정보 및 명령을 상호 교환할 수 있는 인터페이스 제공
- 효율성
- 사용자가 많은 대형 컴퓨터 시스템에서 특히 중요
- 운영체제는 각 프로그램을 유기적으로 결합하여 시스템 전체 성능을 향상
- 시스템 성능 향상
- 처리량 향상
- 지연, 응답시간(턴 어라운드 타임) 단축
- 신뢰도 향상
- 사용 가능도(가동률) 향상
- 제어 서비스 향상
- 시스템 확장, 효율적 운영을 위해 새로운 기능의 효과적인 개발을 허용하는 방법으로 발전
- 입출력장치의 동작 관리 및 제어, 시스템 오류 예방 등으로 컴퓨터 자원을 여러 사용자에게 효율적으로 할당하고 관리할 수 있도록 제어 서비스를 발전
운영체제 기능
- 자원 관리
- 메모리 관리
- 프로세스 관리
- 주변장치(입출력장치) 관리
- 파일(데이터) 관리
- 시스템 관리
- 시스템 보호(사용자 권한 부여)
- 네트워킹(통신)
- 명령 해석기
자원관리
자원
- 컴퓨터 시스템의 메모리, 프로세스, 장치, 파일 등 구성 요소
메모리 관리
- 메인 메모리 관리 : 프로세서가 직접 주소로 지정할 수 있는 유일한 메모리
- 메모리 관리 기능
- 메모리의 어느 부분을 사용하고, 누가 사용하는지 점검
- 메모리에 저장할 프로세스 결정
- 메모리를 할당하고 회수하는 방법 결정
- 보조기억장치 관리 : 메인 메모리는 공간이 제한되어 데이터와 프로그램을 계속 저장할 수 없어 보조기억장치 이용
- 보조기억장치 관리의 기능
- 빈 여유 공간 관리
- 새로운 파일 작성 시 저장 장소 할당
- 메모리 접근 요청 스케줄링
- 파일 생성하고 삭제
프로세스 관리
- 프로세스
- 하나의 프로세스는 프로세서, 메모리, 파일, 입출력장치와 같은 자원으로 구성
- 자원은 프로세스 생성할 때 제공하거나 실행 중에도 할당 가능
- 시스템
- 프로세스의 집합
- 시스템 코드 수행하는 운영체제 프로세스와 사용자 코드 수행하는 사용자 프로세스로 구분
- 모든 프로세스는 프로세서 분할 사용하여 병행 수행 가능
- 프로세스 관리를 위한 운영체제의 기능
- 프로세스와 스레드 스케줄링
- 사용자 프로세스와 시스템 프로세스 생성, 제거
- 프로세스 중지, 재수행
- 프로세스 동기화 방법 제공
- 프로세스 통신 방법 제공
- 교착 상태(deadlock)를 방지하는 방법 제공
주변장치(입출력장치) 관리
- 운영체제는 특수 프로그램인 장치 드라이브를 사용하여 입출력장치와 상호작용
- 장치 드라이버는 특정 하드웨어장치와 통신할 수 있는 인터페이스를 제공하므로 특정 하드웨어에 종속된 프로그램
- 주변장치(입출력장치) 관리를 위한 운영체제의 기능
- 임시 저장 시스템 기능 제공
- 일반 장치용 드라이버 인터페이스 제공
- 특정 장치 드라이버 제공
파일(데이터) 관리
- 입출력 파일의 위치, 저장, 검색 관리 의미
- 컴퓨터 시스템은 물리적으로 다양한 형태로 파일 저장 가능
- 운영체제는 데이터의 효율적 사용을 위해 단일화된 저장 형태 제공
- 운영체제는 파일의 용이한 사용을 위해 보통 디렉터리로 구성, 다수의 사용자가 여기에 접근하려고 할 때는 이 접근을 제어
- 파일 관리를 위한 운영체제의 기능
- 파일 생성, 삭제
- 디렉터리 생성, 삭제
- 보조기억장치의 파일 맵핑
- 안전한(비휘발성) 저장장치에 파일 저장
시스템 관리
시스템 보호(사용자 권한 부여)
- 보호 : 컴퓨터 자원에서 프로그램, 프로세스, 사용자의 접근 제어 방법
- 운영체제는 파일 사용 권한 부여, 데이터 암호화 등 서비스를 제공, 데이터와 시스템 보안
- 컴퓨터 시스템에서는 여러 프로세스 동시 실행 가능하므로 상호 보호해야 함
- 네트워크로 파일 공유 사이트에 접속 시 다른 사용자의 프로그램에서 보호
네트워킹(통신)
- 프로세서는 다양한 방법으로 구성된 네트워크 이용, 완전 접속과 부분 접속 방법으로 연결
- 연결된 프로세서가 통신을 할 때는 경로 설정, 접속 정책, 충돌, 보안 등 고려(운영체제가 관리)
명령 해석기
- 명령 해석기(command interpreter)는 운영체제에서 중요한 시스템 프로그램
- 대화형으로 입력한 명령어를 이해하고 실행하는 사용자와 운영체제의 인터페이스
- 사용자가 입력한 명령은 제어문으로 운영체제에 전달하는데, 이 전달을 명령 해석기가 담당
- 인터페이스 역할을 할 뿐 운영체제는 아님
- 커널과 분리하는 것이 좋음(명령 해석기의 인터페이스 변경 가능)
- 분리하지 않으면 사용자가 커널의 코드를 변경할 수 없어 인터페이스를 변경 불가