CS/운영체제
[운영체제] 운영체제란?
삶_
2022. 6. 21. 12:10
운영체제(OS)란?
- 컴퓨터 하드웨어 바로 위에 설치됨
- 사용자 및 다른 소프트웨어/하드웨어를 연결하는 소프트웨어 계층
- 좁은 의미의 운영체제
- 메모리에 상주하는 운영체제의 부분 (= 커널)
- 넓은 의미의 운영체제
- 커널뿐 아니라 시스템을 전반적으로 관리하는데 필요한 것을 포함
운영체제 목표
- 동시 사용자들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공함
- 컴퓨터 시스템의 자원(cpu,메모리,I/O장치 등)을 최대한 효율적으로 관리
- 다중작업/다중사용자/시분할
운영체제 기능
- CPU
- CPU가 디스크를 직접 거치지 않고, IO컨트롤러를 통해 디스크를 전달받음
- CPU 스케줄링
- 인터럽트, 캐싱
- 메모리 : CPU의 작업공간
- 디스크
-
운영체제의 종류
- 유닉스
- 큰 서버를 위해 만들어진 운영체제
- 코드의 대부분을 C언어로 작성 (하드웨어를 효율적으로 쓸수있는 언어여서)
- 높은 이식성이 있는 C언어
- 안정성
- 소스 코드 공개 / 프로그램 개발에 용이
- 리눅스 (소스가 공개된 소프트웨어)
- MS Windows
- MS에서 개발한 DOS 였다가 발전한것
- 초기의 불안정성 (여러프로그램을 돌리다보면 버그가 생겨서 재부팅이 필요)
- 안드로이드/IOS
- 모바일 운영체제
운영체제의 분류
- 단일작업 : 한번에 하나의 작업만 처리 ex. 윈도우
- 다중작업 : 동시에 두개 이상의 작업 처리 ex.리눅스
- 일괄처리 : 작업 요청량의 일정량을 모아 한번에 처리 (요즘엔 잘 안 쓰임)
- 시분할 : 여러 작업을 수행시 컴퓨터 처리능력을 일정한 시간단위로 분할하여 사용 (요즘에 쓰임 ex. 유닉스)
- 실시간 : 정해진 시간 안에 반드시 종료됨이 보장되어야하는 시스템
몇가지 용어
- 컴퓨터를 동시에 여럿이서 쓸수있다는 의미의 용어들
- 멀티태스킹 : 컴퓨터 안에 여러 프로그램을 동시에 돌리는것
- 멀티프로그래밍 : 메모리에 여러프로그램이 동시에 올라가 있는 것
- 타임쉐어링 : CPU를 쓸 때 시간을 공유해서 쪼개쓴다
- 멀티프로세스 : 하나의 컴퓨터에 CPU가 여러개 붙어있다
사용자 프로그램이 사용하는 함수
- 사용자 정의 함수
- 자신의 프로그램에서 정의한 함수
- 라이브러리 함수
- 내가 만들지 않고 갖다쓴 함수
- 커널 함수
- 운영체제 프로그램의 함수
- 커널에 들어있는 함수
동기실/비동기실 입출력
- 동기실 입출력
- 입출력 요청 후 입출력 작업까지 완료되야만 CPU를 사용자 프로그램에게 다시 줄수있는 것
- 완료되면 인터럽트가 완료됬다고 알려줌
- 비동기실 입출력
- 입출력작업이 완료됨을 기다리지 않고 CPU제어권이 사용자 프로그램에 넘어감
- CPU가 놀지않고 다른 프로그램에게 넘어가기 때문에 효율적인 방식임