[OS] 운영체제의 소개
by 브이담곰📘그림으로 배우는 구조와 원리 운영체제 (개정 3판)을 공부한 후 정리한 글입니다.
운영체제의 주요 기능
[ 자원 관리 ]
- 메모리 관리 ( 메인 메모리 & 보조기억장치 )
- 프로세스 관리
- 주변장치(입출력장치) 관리
- 파일(데이터) 관리
[시스템 관리]
- 시스템 보호( 사용자 권한 부여 )
- 네트워킹( 통신 )
- 명령 해석
운영체제의 발전 목적
- 편리성 : 사용자에게 편리한 환경 제공
- 효율성 : 시스템 성능 향상 ( 처리량 향상, 지연&응답시간 단축, 신뢰도 향상, 사용 가능도 향상 )
- 제어 서비스 향상 : 입출력장치의 동작 관리 및 제어, 시스템 오류 예방
운영체제의 정의와 역할
- 사용자가 하드웨어에 접근할 수 있는 유일한 수단.
- 운영체제는 사용자가 응용 프로그램을 실행할 수 있는 기반환경을 제공하여 컴퓨터를 편리하게 사용할 수 있도록 도와주고, 하드웨어를 효율적으로 사용할 수 있도록 다양한 기능을 제공하는 소프트 웨어.
→ 프로세스 관리
• 프로세스와 스레드를 스케줄링
• 사용자 프로세스와 시스템 프로세스를 생성하고 제거.
• 프로세스를 중지하고 재수행.
• 프로세스 동기화 방법 제공.
• 프로세스 통신 방법 제공.
• 교착 상태(dead lock)를 방지하는 방법 제공.
→ 파일 관리
• 파일 생성 및 삭제
• 디렉터리 생성 및 삭제
• 보조기억장치에 있는 파일을 맵핑
• 안전한(비휘발성) 저장장치에 파일을 저장.
→ 메모리 관리
- 메인 메모리 관리
• 메모리의 어느 부분을 사용하고, 누가 사용하는지 점검.
• 메모리에 저장할 프로세스 결정
• 메모리를 할당하고 회수하는 방법을 결정.
- 보조기억장치 관리
• 빈 여유 공간을 관리
• 새로운 파일을 작성할 때 저장 장소 할당.
• 메모리 접근 요청 스케줄링.
• 파일 생성 및 삭제.
운영체제의 발전과정
1950년대 : 일괄 처리 시스템
작업을 올리는 시간과 해제하는 시간 낭비를 줄이는데 관심을 둠.
데이터 발생 시 즉시 처리❌ → 일정량이 될 때까지 모아 두었다가 한꺼번에 처리 ⭕(작업시간 줄어듬)
• 일괄 처리 : 비슷한 작업들을 그룹으로 묶어 일괄 처리
• 버퍼링 : 속도 차이로 생긴 유휴시간이 없도록 입출력 장치별로 입출력 버퍼를 두어 연산을 할 때 동시에 다른 작업 입출력. → 하나의 입출력 작업과 그 작업의 계산만 함께 가능
• 스풀링: 속도가 빠른 디스크를 버퍼처럼 사용하여 입출력장치에서 미리 읽음.
→ 여러 작업의 입출력과 계산을 함께할 수 있음.
1960년대 : 시분할•다중프로그래밍•다중처리•실시간시스템
❤ 시분할 시스템(Time Sharing)
❓다중 프로그래밍을 논리적으로 확장한 개념으로, 프로세서가 다중 작업을 교대로 수행.
→ 다수의 사용자가 동시에 컴퓨터의 자원을 공유할 수 있는 기술.
여러 사용자에게 짧은 간격으로 프로세서를 번갈아 가며 할당해서 마치 자기 혼자 프로세서를 독점하고 있는 양 착각하게 하여 여러 사용자가 단일 컴퓨터 시스템을 동시에 사용할 수 있게 함.
장점 | • 빠른 응답 제공 • 소프트웨어의 중복 회피 가능 • 프로세서 유휴시간 감소 |
단점 | • 신뢰성 문제 • 보안 의문 및 사용자 프로그램과 데이터의 무결성 • 데이터 통신의 문제 |
❤ 다중 프로그래밍 시스템 & 다중 처리 시스템
다중 프로그래밍 시스템 | 프로세서 1개 | 프로세서의 유휴시간에도 다른 프로그램을 처리하여 동시에 여러 프로그램을 실행하는 것과 같은 효과를 내어 프로세서 효율을 극대화 함. |
다중 처리 시스템 | 프로세서 2개 이상 | 프로세서 하나가 고장이 나도 다른 프로세서를 사용하여 작업을 계속 할 수 있어 신뢰성이 높음. |
❤ 실시간 처리 시스템
즉시 응답함
1970년대 초반 : 다중 모드•범용 시스템
일괄 처리, 시분할 처리, 실시간 처리, 다중 처리를 모두 제공.
1970년대 중반~1990년대: 분산 처리 시스템, 병렬 계산과 분산 계산
• 마이크로프로세서 등장 : 개인용 컴퓨터 사용 가능.
• 네트워크를 이용하여 멀리 떨어진 컴퓨터 사용 ⭕ → 지역적으로 멀리 떨어진 여러 시스템과 통신 가능!
• 1970年 : 명령어 중심 시스템 → 1980年: 사용자에게 편리한 메뉴 지향적으로 대체 → 1990年: GUI 시스템
2000년대 이후: 모바일 및 임베디드, 가상화 및 클라우드 컴퓨팅
모바일 및 임베디드
• 모바일 운영체제, 사물 인터넷 기술 등장
서버 가상화
가상화 : 물리적 자원을 추상화하여 논리적 자원 형태로 표현하는 기술
개념 : 물리적 서버 하나에 가상 서버를 여러개 구성. → 여러 운영체제가 한 시스템의 자원을 공유할 수 있음.
클라우드 컴퓨팅
개념 : 서버 가상화 기술을 이용하여 사용자에게 컴퓨팅 자원, 스토리지, 소프트웨어등을 서비스 형태로 제공.
운영체제의 사용자 서비스
👉 프로그래머가 프로그래밍 작업을 쉽게 수행할 수 있도록 아래와 같은 사용자 서비스를 제공함.
//그림 삽입예정.
시스템 호출의 개념과 시스템 호출 방법
• 개념 : 실행 중인 프로그램과 운영체제 간의 인터페이스로, API( Application Programming Interfaces ) 라고도 함.
사용자 프로그램은 시스템 호출을 하여 운영체제의 기능을 제공받는다. → 사용자 수준에서 지원하지 않는 기능을 운영체제의 루틴을 호출하여 제공받는 방법!
• 방법 :
[1] 프로그램에서 명령이나 서브루틴의 호출 형태로 호출
[2] 시스템에서 명령 해석기를 사용하여 대화 형태로 호출
계층 구조 운영체제의 장점
모듈화가 잘 되어있어, 각 계층은 자신의 하위 계층 서비스와 기능만 사용하므로, 시스템 검증과 오류 수정을 쉽게 할 수 있음.
단일 커널 구조 운영체제
운영체제의 모든 기능을 커널과 동일한 메모리 공간에 적재 후 시스템 호출만으로 사용할 수 있다.
• 장점 : 직접 통신하여 시스템 자원을 효율적으로 관리할 수 있음.
• 단점 : 커널 크기가 상대적으로 커지면서 버그의 원인이나 기타 오류를 구분하기 어렵고, 새 기능을 추가하는 수정과 유지보수가 매우 어려움.
마이크로 커널 구조 운영체제
• 장점
- 커널을 가볍게 하고, 운영체제 서비스를 사용자 영역의 독립적인 서버에서 수행하기 때문에 서버에서 잘못 수행하더라도 다른 서버와 커널에 치명적인 영향을 주지 않음.
- 운영체제 기능을 사용자 영역의 서버로 구현 가능 → 서버 개발 용이 & 운영체제 기능을 쉽게 변경 ⭕
• 단점
- 모듈간의 통신이 빈번하게 발생하여 성능이 떨어질 수 있음.
- 응용 프로그램과 서버 간에 자료를 교환하려고 커널을 출입하는 문맥 교환 때문에 속도가 느림.
'Computer Science > 운영체제' 카테고리의 다른 글
[OS] 프로세스와 스레드 (0) | 2023.05.01 |
---|---|
[OS] 컴퓨터 하드웨어의 구성 (0) | 2023.03.09 |
블로그의 정보
농담곰담곰이의곰담농
브이담곰