농담곰담곰이의곰담농

[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

블로그의 정보

농담곰담곰이의곰담농

브이담곰

활동하기