운영체제 개요

EBAB!·2023년 7월 9일
0

OS

목록 보기
1/16
post-custom-banner

운영 체제 개요

운영 체제(Operating System, OS) : 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층.

  • 파일 관리, 메모리 관리, 프로세스 관리, 입력 및 출력 처리, 디스크 드라이브 및 프린터 등 주변 장치 제어와 같은 기본 작업을 수행하는 소프트웨어
  • 운영 체제의 핵심 구성 요소를 포함하는 소프트웨어를 커널이라고 한다.
  • 응용 프로그램이 컴퓨터 하드웨어와 상호 작용할 수 있도록 도와주는 역할.

목적

  • 운영 체제의 주요 목적은 하드웨어, 소프트웨어 자원을 효율적으로 관리 및 보안
  • 응용 프로그램이 컴퓨터 하드웨어와 상호 작용할 수 있도록 도움
  • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공

분류

동시 작업 가능 여부 기준

단일 작업 (single tasking) : 한 번에 하나의 작업만 처리

다중 작업 (multi tasking) : 동시에 2개 이상의 작업을 처리. (컴퓨터를 포함한 현대의 대부분 제품들)

사용자의 수 기준

단일 사용자 : 한 컴퓨터에 한 유저 (MS Wingows)

다중 사용자 : 한 컴퓨터에 여러 유저 (UNIX)

처리 방식 기준

일괄 처리 방식 (batcj processing, 과거)

  • 작업 요청의 일정량을 모아서 한번에 처리
  • 작업이 완전 종료될 때 까지 대기

시분할 방식 (time sharing, 현대)

  • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
  • 일괄 처리 시스템에 비해 짧은 응답 시간
  • UNIX

실시간 방식 (Realtime OS)

  • 정해진 시간 안에 어떠한 일이 반드시 종료됨을 보장되어야 하는 실시간 시스템을 위한 OS
  • 원자로/공자 제어, 미사일 제어, 반도체 장비, 로보트 제어 등등
  • 현대에 실시간성이 중요한 어플리케이션이 도입됨에 따라 어느정도 접목 대상이 되는 중

정의

여러 표현으로 정의가 가능합니다.

  1. 작업 스케줄링 및 주변 장치 제어와 같은 컴퓨터의 기본 기능을 지원하는 저수준 소프트웨어.
  2. 사용자와 컴퓨터 하드웨어 간의 인터페이스 역할을 하며 모든 종류의 프로그램 실행을 제어하는 역할.
  3. 컴퓨터 하드웨어, 소프트웨어 자원을 관리하고 컴퓨터 프로그램에 대한 공통 서비스를 제공하는 시스템 소프트웨어

아키텍처

아키텍쳐

CPU : CPU스케줄링을 통해 CPU 할당

monory : 메모리 관리를 통해 한정된 메모리를 쪼개어 사용

Disk : 파일 관리를 통해 디스크에 파일을 보관

I/O device : 입출력 관리를 통해 각기 다른 입출력 장치와 컴퓨터 간 정보 통신 관리

운영 체제 세대

0세대

0세대 용어는 컴퓨팅 분야에서 Charles Babbage가 분석 엔진을 발명한 시기와 John Atanasoff이 1940년에 컴퓨터를 만든 시기를 나타낼 때 사용.

이 시기의 하드웨어 구성 요소 기술은 전자 진공관이었다.

컴퓨터에는 사용 가능한 운영 체제가 없으며, 컴퓨터 프로그램은 기계어로 작성.

이 때 컴퓨터는 비효율적이었으며, 개별 프로그래머의 능력에 따라 다르게 작동.

1세대(1951-1956)

여전히 운영 체제 없이 전문가 운영자의 도움으로 시스템 운영이 이루어졌다.

→시간이 지남에 따라 더 높은 수준의 절차 지향 언어로 프로그램 작성이 시작되어 운영자의 루틴이 확장되기 시작.

이후 단일 프로그램 운영 체제가 개발되어 인간의 개입을 줄이고 프로그래머에게 여러 가지 유용한 기능을 제공.

이러한 시스템은 여전히 인간 운영자의 제어 하에 작동하며 프로그램을 실행하기 위해 일정한 단계를 따르기 위해 사용되었다.

2세대(1956-1964)

컴퓨터 하드웨어의 두 번째 세대는 전자 진공관을 하드웨어 구성 요소 기술로 대체하는 것이 가장 큰 특징이다.

IBM 컴퓨터에서 개발된 최초의 운영 체제 GMOS는 단일 스트림 배치 처리 시스템을 기반으로 합니다.

  • 이 시스템은 모든 유사한 작업을 그룹 또는 배치로 모아서 펀치 카드를 사용하여 작업을 운영 체제에 제출하고, 기계 안에서 모든 작업을 완료한다. 작업이 완료되면 운영 체제가 정리되고 펀치 카드에서 다음 작업을 읽고 시작한다.

3세대(1964-1979)

세계에서 가장 큰 IT회사인 IBM이 1964년 4월에 System/360 시리즈 컴퓨터를 발표하여 세 번째 세대가 공식적으로 시작.

하드웨어 기술은 통합 회로(IC) 사용(속도와 경제성 면에서 성능 증가)

운영 체제 개발은 멀티 프로그래밍의 도입과 널리 사용되기 시작한 것으로 이어졌다. 컴퓨터의 데이터 채널 I/O 기능을 최대한 활용하는 아이디어는 계속해서 발전.

4세대(1979년 ~ 현재)

네 번째 세대는 개인용 컴퓨터와 워크스테이션의 등장이 특징이다.

세 번째 세대의 하드웨어 기술은 대규모 통합(VLSI)으로 대체되었습니다.

오늘날 사용하는 Windows, Linux, MacOS 등과 같은 많은 운영 체제가 네 번째 세대에서 개발되었습니다.

운영 체제의 주요 기능

메모리 관리

기본 메모리 또는 주 메모리의 관리.

주메모리

  • 각 단어 또는 바이트가 고유한 주소를 가진 큰 단어나 바이트 배열이다.
  • CPU가 직접 액세스할 수 있는 빠른 저장소를 제공. 프로그램을 실행하려면 주 메모리에 있어야 한다.

메모리 관리를 위한 운영 체제의 활동

  • 사용 중인 주 메모리의 일부를 누가 사용하고 있는지, 일부는 사용하지 않고 있는지 추적.
  • 멀티 프로그래밍에서 운영 체제가 언제, 어떤 프로세스를 위해 메모리를 할당할지 결정.
  • 프로세스가 메모리를 요청하면 메모리를 할당.
  • 프로세스가 더 이상 필요하지 않거나 종료된 경우 메모리를 해제.

프로세서 관리

멀티 프로그래밍 환경에서 운영 체제는 어떤 프로세스가 언제 CPU를 사용할지와 얼마나 오랫동안 사용할지 결정. 이 기능을 프로세스 스케줄링이라고 한다.

프로세스 스케줄링을 위한 운영 체제 활동.

  • 프로세서 및 프로세스 상태를 추적. 이 작업을 수행하는 프로그램을 트래픽 컨트롤러라고 한다.
  • 프로세스에 CPU를 할당.
  • 프로세스가 더 이상 필요하지 않은 경우 CPU를 해제.

장치 관리

운영 체제는 각각의 드라이버를 통해 장치 통신을 관리.

운영체제 활동

  • 모든 장치를 추적. 이 작업을 수행하는 프로그램을 I/O 컨트롤러라고 한다.
  • 언제, 어떤 프로세스가 장치를 사용할지와 얼마나 오랫동안 사용할지 결정.
  • 효율적인 방식으로 장치를 할당.
  • 장치를 해제.

파일 관리

일반적으로 파일 시스템은 디렉터리로 구성되어 쉬운 탐색과 사용이 가능하게 조직화된다. 이러한 디렉터리에는 파일 및 기타 디렉터리가 포함될 수 있다.

운영체제 활동

  • 정보, 위치, 사용, 상태 등을 추적. 이러한 종합적인 기능들을 파일 시스템이라고도 한다.
  • 자원을 누가 얻을지 결정.
  • 자원을 할당.
  • 자원을 해제.

네트워크 관리

보안

암호 및 유사한 다른 기술을 사용하여 프로그램 및 데이터에 대한 무단 액세스를 방지합니다.

시스템 성능 제어

서비스 요청과 시스템 응답 사이의 지연을 기록합니다.

작업 계정

다양한 작업과 사용자가 사용하는 시간과 리소스를 추적합니다.

오류 검출 보조 도구

덤프, 트레이스, 오류 메시지 및 기타 디버깅 및 오류 감지 보조 도구의 생산.

기타 소프트웨어 및 사용자 간의 조정

컴퓨터 시스템의 다양한 사용자에게 컴파일러, 인터프리터, 어셈블러 및 기타 소프트웨어의 조정 및 할당.

운영체제 종류

UNIX

  • 코드의 대부분을 C언어로 작성
  • 높은 이식성
  • 최소한의 커널 구조
  • 복잡한 시스템에 맞게 확장 용이
  • 오픈 소스
  • 다양한 버전 : Linux, Solaris, SunOS, FreeBSD, System

Windows

  • 개인 컴퓨터를 위해 DOS OS를 배포하였으나 단일 사용자용, 메모리 관리 능력이 떨어져 이후 Windows를 배포
  • GUI 기반 다중 작업용 GUI 기반 OS
  • DOS용 응요 프로그램과 호환성 제공
  • 불안정성
  • 풍부한 지원 소프트웨어
profile
공부!
post-custom-banner

0개의 댓글