운영체제(OS)
1. 운영체제의 정의
- 운영체제(operating system)란 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어
- 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
- 컴퓨터 시스템을 운영하는 기본적인 소프트웨어를 운영체제
2. 커널
- 운영체제도 하나의 소프트웨어로서 컴퓨터 시스템에서 실행되기 위해서 메모리에 올라가게 됨
- 그러나 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라갈 수 없어 운영체 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용
- 커널은 좁은 의미의 운영체제로 메모리에 상주하는 운영체제의 부분
- 커널은 운영체제 코드 중에서 핵심적인 부분를 나타냄
- 넓은 의미의 운영체제는 커널 뿐만 아니라 시스템을 위한 유틸리티도 광범위하게 포함하는 개념
3. 운영체제의 기능
: 운영체제의 역할은 하드웨어를 위한 역할과 사용자를 위한 역할 두 가지로 나뉨
1) 컴퓨터 시스템 내의 자원(resource)을 효율적으로 관리하는 것
- 운영체제의 핵심 기능은 자원을 효율적으로 관리하는 것이며, 따라서 운영체제를 자원관리자라고 부름
- 자원이란 CPU, 메모리, 하드디스크 등 하드웨어 자원 뿐 아니라 소프트웨어 자원까지 통칭해서 부르는 말
- 운영체제는 사용자 및 프로그램들 간에 자원이 형평성 있게 분배되도록 하는 균형자 역할도 함께 수행하며, 효율성을 지키도록 동작
2) 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하는 것
- 편리한 환경제공이란 운영체제가 여러 사용자 및 프로그램들에게 각각 독립적으로 컴퓨터를 사용하는 것과 같은 '환상'을 제공하는 것
- 하드웨어를 직접 다루는 복잡한 부분은 운영체제가 대신 해주고, 각 사용자 및 프로그램은 그에 대한 자세한 내용을 몰라도 프로그램을 실행할 수 있도록 해주는 기능을 제공( ex- 파일 손쉽게 저장, 파일 내용 읽기 )
3) 그 외에도 사용자와 운영체제 자신을 보호하는 역할을 수행(보안 및 보호 기능)
4. 운영체제의 분류
동시 작업을 지원하는지의 여부에 따른 분류
1) 단일작업(single tasking)용 운영체제
- 한번에 하나의 프로그램만 실행시킬 수 있는 운영체제
- 초창기 운영체제인 DOS 환경에서는 하나의 프로그램이 실행되는 동안 다른 프로그램을 실행시킬 수 있는 명령어 입력 라인이 뜨지 않아 한 번에 하나의 작업만 수행 가능
2) 다중작업(multi tasking)용 운영체제
- MS 윈도우나 유닉스 환경처럼 하나의 프로그램이 끝나기 전에 다른 프로그램을 실행시킬 수 있는 운영체제
- 운영체제가 다중작업을 처리해야할 때에는 여러 프로그램이 CPU와 메모리를 공유하게 됨
- 여러 프로그램을 같이 싫애시키지만 사용자 개개인의 관점에서는 각 프로그램이 곧 바로 동작되는 것 처럼 보이기 때문에 이러한 시스템을 대화형 시스템이라고 함
- 다중작업, 시분할, 다중 프로그래밍, 대화형 시스템은 모두 여러 프로그램이 하나의 컴퓨터에서 동시에 실행됨
- 시분할 시스템(time sharing system) : CPU의 작업시간을 여러 프로그램들이 조금씩 나누어 쓰는 시스템
- 다중 프로그래밍 시스템(multi-programming system) : 메모리 공간을 분할해 여러 프로그램들을 동시에 메모리에 올려놓고 처리하는 시스템
- 다중 처리기 시스템(multi-processor system) : 하나의 컴퓨터 안에 CPU가 여러 개 설치된 시스템으로 뜻하며 서로 다른 CPU에서 여러 프로그램이 동시에 실행될 수 있어 처리속도는 빠르지만 운영체제어서는 여러 CPU를 관리하
기 때문에 더욱 복잡한 메커니즘이 필요함
다중 사용자에 대한 동시 지원 여부에 따른 분류
1) 단일 사용자용 운영체제 : 한 번에 한 명의 사용자만이 사용하도록 허용하는 운영체제
2) 다중 사용자용 운영체제 : 여러 사용자가 동시에 접속해 사용할 수 있게 하는 운영체제
작업을 처리하는 방식에 따른 분류
1) 일괄 처리 방식 운영체제
- 요청된 작업을 일정량씩 모아서 한꺼번에 처리하는 방식
- 사용자의 입장에서 응답시간이 길다는 단점
2) 시분할 방식 운영체제
- 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식
- 유닉스의 경우 여러 사용자의 작업을 짧은 시간 단위씩 번갈아가면서 처리
- 평균적으로 사람들이 길다고 느끼는 시간에까지 이르지 않고 입력에 대한 응답을 얻을 수 있어 사용자 측에서는 자기 혼자 독점적으로 사용하는 것처럼 생각됨
- 사용자에 요청에 대해 결과를 곧바로 얻을 수 있는 시스템을 대화형 시스템이라고 하며, 시분할 방식의 대표적인 특징임
3) 실시간(real time) 운영체제
- 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템에서 사용됨
- 시간제약의 중요성에 따라 경성 실시간 시스템, 연성 실시간 시스템으로 분류
- 경성 실시간 시스템(hard realtime system)은 주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 로켓, 원자로 제어 시스템
- 연성 실시간 시스템(soft realtime system)은 멀티미디어 스트리밍 시스템과 같이 데이터가 정해진 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템
5. 운영체제의 예
- 대표적으로 유닉스, MS 윈도우가 존재
- 유닉스는 소프트웨어의 이식성이 높은 운영체제로, 소프트웨어의 이식성이란 해당 소프트웨어를 다른 기종의 기계로 옮기는 것이 얼마나 용이한 가라를 나타내는 지표
- 유닉스는 핵심부분이라 할 수 있는 커널의 크기가 놀라울 정도로 작았으며, 여러 가지 유틸리티를 지원하기 때문에 프로그래밍 환경에서 이상적( 유닉스가 C코드로 만들어졌기 때문에 어셈블리어에 비해 사람이 편리하게 사용가능)
- MS 윈도우는 개인용 컴퓨터를 위한 운영체제로서 누구든지 손쉽게 사용할 수 있도록 하는 편리한 인터페이스와 각종 기능들을 특징으로 함
출처 : (http://www.kocw.net/home/m/search/kemView.do?kemId=1046323)
- 강의 : 이화여자대학교, 반효경 (운영체제)
- 책 : 운영체제와 정보기술의 원리 [반효경]
위 강의와 책을 보며 공부한 내용을 기록하였습니다.
'CS > 운영체제' 카테고리의 다른 글
프로세스와 스레드의 차이 (1) | 2022.09.11 |
---|---|
컴퓨터 시스템의 동작 원리-3 (0) | 2021.10.28 |
컴퓨터 시스템의 동작 원리-2 (0) | 2021.10.28 |
컴퓨터 시스템의 동작 원리-1 (0) | 2021.10.28 |
운영체제(OS)의 자원 관리 기능 (0) | 2021.10.28 |