// 22.09.04 Noel
-
우리가 흔히 아는 맥 OS(Mac OS), 윈도우(Window), 리눅스(Linux), 유닉스(Unix) 등
-
Operating System
- 컴퓨터(하드웨어) 시스템을 운영하는 소프트웨어
💡 알아두면 좋은 상식..! 🤔 그럼 컴퓨터는 뭘까? - 컴퓨터는 `정보`를 처리하는 기기 🤔 그럼 정보가 뭘까? - 정보량 = 깜놀도 /I(x) = -log2 P(x) - `확률이 적은 사건은 큰 정보량`을 갖고, `발생 확률이 큰 사건은 작은 정보량`을 가짐 - 정보의 최소단위 : 1 bit = 즉 정보는 불확실한 상황을 측정해서 수치적으로 표현한 것 🤔 그럼 프로그램은 뭘까? - 컴퓨터 하드웨어에 어떤 테스크를 실행시키는 명령어들의 집합
- 컴퓨터(하드웨어) 시스템을 운영하는 소프트웨어
-
컴퓨터 시스템(하드웨어)의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
- 운영체제는
컴퓨터 사용자
와컴퓨터 하드웨어
간의인터페이스로서 동작하는 시스템 소프트웨어
의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 하는 환경 제공 - 즉,
응용프로그램(Application Program)
이System Service
(하드웨어)를 직접 건드리기 는 어려우니 OS가 중간에 위치해 사용자의 요청을 처리해줌
프로그램(소프트웨어) => 크게 운영체제 / 응용프로그램(= Application, App)으로 구분 => 운영체제는 응용프로그램을 관리해 사용자가 사용하기 편하게 도와줌
- 운영체제는
운영체제의 일은 컴퓨터 하드웨어를 관리 하는 것!
프로그래머들이 하드웨어를 모르더라도 쉽게 사용할 수 있도록 지원해줌
번호 | 내용 |
---|---|
1 | 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 지원을 관리 |
2 | 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공 |
3 | 사용자와 시스템간의 편리한 인터페이스(UI)를 제공 |
4 | 시스템의 각종 하드웨어와 네트워크를 관리, 제어 |
5 | 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공 |
6 | 시스템의 오류를 검사하고 복구 |
7 | 자원 보호 기능을 제공 |
8 | 입출력에 대한 보조 기능을 제공 |
9 | 가상 계산기 능력을 제공 *가상 계산기란? 한대의 컴퓨터를 여러 대의 컴퓨터처럼 보이게하는 가상 컴퓨터 운영체체에 의해 만들어지며 사용자 관점에서는 실제 컴퓨터처럼 보일 수도 있고 아주 다르게 보일 수도 있음 |
운영체제의 목적은 컴퓨터를 잘 쓰자..!
- 운영체제 목적은
처리능력 향상
,사용 가능동 향상
,신뢰도 향상
,반환 시간 단축
이 있음 - 아래 4가지 항목은 운영체체 성능을 평가하는 기준이 됨
구분 | 내용 |
---|---|
처리능력 (Throughput) |
일정 시간 내에 시스템이 처리하는 일의 양 |
반환시간 (Turn Around Time) |
시스템에 작업을 의뢰한 시간부터 처리가 완료될 떄까지 걸린 시간 |
사용가능도 (Availability) |
시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도 |
신뢰도 (Reliabilty) |
시스템이 주어진 문제를 정확하게 해결하는 정도 |
운영체제란 제어프로그램(Control Program)
과 처리 프로그램(Process Program)
으로 구성
- 제어 프로그램 : 컴퓨터 안의 정보들과 자원을 제어, 상태를 감시하고 실행하는 과정을 지시하고 관리
- 처리 프로그램 : 실제로 데이터 처리를 실행하고 결과를 보여줌
- 각종 처리 프로그램의 실행과 기억장소 및 데이터 제오 또는 연초처리작업의 스케줄링을 감시하는 기능을 수행
데이터 관리 기능
/작업 관리 기능
/테스트 관리 기능
을 가짐
구분 | 내용 |
---|---|
감시 프로그램 | - 시스템 전체의 동작 상태를 감독하고 지원 (제어프로그램의 중추적 역할) - 수퍼바이저(Supervisor) : 시스템의 모든 동작 상태를 관리, 감독하는 제어프로그램 |
작업 관리 프로그램 | - 어떤 작업을 처리하고 다른 작업으로 자동적 이행을 위한 준비와 처리를 수행 |
데이터 관리 프로그램 | - 주기억 장치와 외부 보조 기억 장치 사이의 데이터 전송, 입출력 데이터와 프로그램의 논리적 연결, 파일 조적 및 처리를 담당 |
- 제어 프로그램 감시 하에 컴퓨터의 특정한 문제를 해결하기 위해 필요한 여러가지 기능을 처리할 수 있도록 해주는 프로그램
- 회사측에서 제공하는 프로그램과 사용자가 작성한 문제 해결 프로그램이 있음
구분 | 내용 |
---|---|
언어 번역 프로그램 | - 원시 프로그램을 컴퓨터가 알 수 있는 기계어로 번역시키는 프로그램 -종류 : 컴파일러, 어셈블로, 인터프리터 등 |
서비스 프로그램 | - 시스템에서 사용빈도가 높은 프로그램을 미리 개발하여 놓은 프로그램 -종류 : 연계 편집 프로그램, 로더, 디버깅 프로그램, 정렬/병합 프로그램, 라이브러리 등 |
문제 처리 프로그램 | - 컴퓨터 사용자가 필요한 업무에 맞게 개발한 프로그램 -종류 : 급여관리, 인사관리, 회계관리 등 |
- 운영체제에서 작동하는 응용 프로그램을 관리하는 기능
- 어떤 의미에서는 프로세서(CPU)를 관리하는 것이라고 볼 수 있음
- 현재 CPU를 점유해야할 프로세스를 결정하고, 실제로 CPU를 프로세스에 할당하며, 이 프로세스 간 공유 자원 접근과 통신을 관리
👉하는 일
- 프로세스, 스레드
- 스케줄링
- 동기화
- ICP 통신
- 주기억장치와 보조기억장치(하드디스크/NAND등)을 관리하는 기능
- 주기억장치(Main Memory)
- 프로세스에 할당하는 메모리 영역의 할당과 해제
- 각 메모리 영영 간의 침범 방지
- 메인 메모리의 효율적 활용을 위한 가상 메모리 기능
- 프로세스에 할당하는 메모리 영역의 할당과 해제
- 보조기억창지(HDD, NAND, Flash Memory 등)
- 파일 형식의 데이터 저장
- 이런 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리
FAT
,NTFS
,EXT2
,JFS
,XFS
등 많은 파일 스스템들이 개발되어 사용중
- 파일 형식의 데이터 저장
👉 하는 일
- 메모리 관리
- 가상 메모리
- 파일 시스템
- 네트워킹은 컴퓨터 활용의 핵심
- TCP/IP 기반의 인터넷에 연결하거나, 응용프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지원해야한다.
- => 이처럼 운영체제는 사용자와 컴퓨터 하드웨어 사이에 위치해서, 하드웨어 운영 및 관리하고 명령어를 제어하여 응용 프로그램 및 하드웨어를 소프트웨어적으로 제어 및 관리 해야한다.
👉 하는 일
- TCP/IP
- 기타 프로토콜
- 운영체제는 한 컴퓨터를 여러사람이 사용하는 환경도 지원해야함
- 따라서, 운영체제는 각 계정을 관리할 수 있는 기능이 필요
- 사용자 별로 프라이버시와 보안을 위해개인 파일에 대해서는 다른 사용자가 접근 할 수 없도록 해야함
- 이 밖에도 파일이나 접근권한을 지정할 수 있도록 지원하는 것이 사용자 관리 기능
👉 하는 일
- 계정 관리
- 접근권한 관리
- 운영체제는 시스템의 자원, 하드웨어를 관리
- 시스템에는 여러 하드웨어가 붙어있음
- -> 이들을 운영체제에서 인식하고 관리해 응용 프로그램이 하드웨어를 사용할 수 있게 해야함
- 따라서, 운영체제 안에서 하드웨어를 추상화 해주는 계층이 필요
- => 이 계층이 바로 디바이스 드라이버!
- -> 이들을 운영체제에서 인식하고 관리해 응용 프로그램이 하드웨어를 사용할 수 있게 해야함
- 하드웨어 종류가 많은 만큼, 운영체제 내부의 디바이스 드라이버도 많이 존재
- 여러 디바이스 드라이버들을 관리하는 기능 또한 운영체제가 맡음
- 여러 디바이스 드라이버들을 관리하는 기능 또한 운영체제가 맡음
👉 하는 일
- 순차접근 장치
- 임의접근 장치
- 네트워크 장치
출처
https://youtu.be/zGBm37kze9I?list=PLHqxB9kMLLaOs2BM2KbuvttBYCgDoFm-5