OS(Operating System)(1)

노정훈·2023년 4월 18일
0

CE

목록 보기
13/24
post-custom-banner

Operating System

  • 컴퓨터 시스템을 구성하고 있는 여러가지 resource에게 어떤 동작을 하도록 지시하는 역할을 하는 프로그램들의 집합.
  • 사용자 측면에서는 컴퓨터의 H/W에 대한 지식 없이도 시스템을 쉽게 사용 가능하게 해주고, 시스템 측면에서는 컴퓨터 시스템의 성능을 최대 한도로 향상시키는 프로그램.
  • 컴퓨터의 H/W관리, 응용프로그램들(Applications)의 토대를 제공, 사용자, 응용프로그램들과 하드웨어 사이의 중간 매개체 역할.

OS의 목적

  • OS는 User interface를 제공하여 사용자가 컴퓨터의 H/W에 대한 지식 없이도 편리하게 시스템을 사용하게 함.
  • 컴퓨터 시스템의 자원들을 효율적인 운영

OS가 제공하는 서비스

  1. 프로그램 실행 : 사용자가 원하는 프로그램 실행.

  2. 입력/출력 동작 지원 : 사용자 프로그램이 데이터 I/O를 수행할 수 있게 지원.

  3. 파일 시스템 조작 : 파일 생성, 삭제 등의 파일 관리에 대한 기능 제공.

  4. 자원 관리 및 할당 : 여러 사용자 혹은 프로세스가 제한된 resource를 사용하려 할 때 효율적으로 해당 자원 할당 수행.

  5. 계정 관리 : 사용자들의 컴퓨터에 대한 기록 저장하고 이를 처리하여 resource의 활용 상태 파악 등에 이용.

  6. 오류 탐지 : 가능한 한 모든 오류의 상태를 탐지.

  7. 보호 : 사용자 정보를 보호할 수 있는 체제 제공.

OS 종류

  • Windows, Linux, Unix, Mac OS

운영기법에 따른 분류

1. Batch Processing(일괄처리) system

  • 한번에 하나의 프로그램 만 수행
  • 운영체제는 항상 메모리에 상주
  • 처리 속도 향상을 위해 유사한 요구를 필요로 하는 작업을 일괄처리함.
  • 시대적으로 가장 먼저 생긴 형태
  • 단점으로는 기계적 입출력 장치가 전자적 장치의 속도보다 상대적으로 느려 CPU가 쉬는 경우가 많아짐

2. Multi-programming(다중 프로그래밍) system

  • 여러 개의 프로그램을 동시에 메모리에 적재하여 하나의 프로그램이 수행하다가 I/O, 인터럽트 등에 의해 대기 상태가 되면 그동안 다른 프로그램을 실행하는 방식
  • 입출력과 프로그램의 실행을 병렬로 할 수 있어, CPU 사용 효율 증가

3. Time Sharing(시분할) system

  • Multi-programming 시스템은 사용자와의 상호작용을 제공하지 못하기 때문에 등장함.
  • Multi-programming과 달리 정해진 시간이 되면 무조건 다음 순서의 작업을 실행하는 방식
  • 작업 교대 시간이 매우 짧아 프로그램이 실행되는 동안 사용자는 컴퓨터와 상호작용함.
  • 가상 메모리를 사용하여 많은 메모리 사용 가능

4. Multi-processing(다중 처리) system

  • 여러 개의 CPU와 한 개의 주기억 장치로 여러 프로그램을 동시에 처리하는 시스템.

5. Real Time(실시간 처리) system

  • 프로세서 작동이나 데이터 흐름에 엄격한 시간 제약이 있을 때 사용
  • 발생 자료 바로 처리
  • Real time 운영체제는 보통 특수 목적용.

6. 다중 모드 system

  • Batch processing + Time sharing + Multi-processing + Real time system

7. 분산 처리 system

  • 네트워크를 통해 통신하여 그 기능을 제공
  • 여러 프로세서를 사용하지만 밀결합(tightly-coupled) 구조가 아닌 소결합(loosely-coupled) 형태
  • 컴퓨터 버스나 클럭을 공유하지 않고 네트워크를 이용해 통신
    ex. google workspace

Kernel

  • OS의 핵심적인 부분. 항상 메모리에 올라가 있음.
  • H/W와 User program(application) 사이에서 User program 수행에 필요한 여러 서비스를 제공하기 위한 인터페이스를 제공.
  • 컴퓨터 H/W의 resource들을 관리

H/W resource에 대한 interface 제공

  • Kernel은 User program과 H/W resource 사이에서 이들을 연결해주는 역할을 수행함.
  • User program은 system call을 통해 kernel에 필요한 H/W resource 사용을 요청하고 kernel은 이를 받아 해당 H/W resource에 해당하는 명령을 전달하여 작업을 수행하고 그 결과를 user program에 반환.
  • User program은 kernel이 제공하는 system call interface를 통해 computer의 physical resource를 사용함.

H/W Resource Management

  • Kernel은 computer H/W의 physical resource를 관리하며 이들의 abstraction(or virtualization)인 virtual resource를 생성 및 관리함.

Virtual resource

  • physical resource를 abstraction(추상화)한 것으로 각각의 User program들에서는 해당 virtual resource가 보이며 이를 통해 user program들은 현재 자신이 특정 H/W를 혼자서 쓰는 것처럼 느낌.
Physical H/WVirtual H/W
CPUTask or Processor
Memory(or RAM)Page or Segment
Disk(or HDD, SDD)File
NetworkSocket
  • Kernel이 수행하는 H/W resource 관리는 다음과 같이 구성됨.

1. Task(Process) Management

  • Physical resource인 CPU를 추상적 자원인 Task(or processor)로 제공.

2. Memory Management

  • Physical resource인 memory를 추상적 자원인 Page(or Segment)로 제공

3. File System

  • Physical resource인 disk를 추상적 자원인 File로 제공

4. Network Management

  • Physical resource인 네트워크 장치를 추상적 자원인 Socket으로 제공

5. Device Driver Management

  • 기타 외부 device(Peripheral devices)들과 user program 사이에서 중재자/인터프리터 로서 동작하면서 해당 device들의 driver 관리.

6. Interrupt Handling

7. I/O Communication

OS에서의 역할

  • OS는 kernel에 system program들이 더해져서 구성된 것.
  • 사실 kernel은 컴퓨터 사용자와 직접적으로 interaction 하지는 않고 shell인 중간에서 이를 담당함. kernel은 shell을 통하거나 다른 user program을 통해 사용자와 interaction 수행.

Console

  • A physical device that typically comprises a monitor, keyboard, and mouse.
  • It is used to interact with a computer system
  • The console allows system administrators to monitor and magage the computer system.

Terminal

  • A software application that allows users to interact with a computer system through a command-line interface.
  • It provides users with a way to enter text commands and receive text-based output from the computer system.

Shell

  • A software program that provides users with access to the operating system's services and resources.
  • It can be a command-line interface or a graphical user interface.
  • The shell allows users to interact with the computer system by running commands, launching applications, and managing files and directories.

UNIX

  • 다양한 H/W platform에 이식되어 여러 기관에서 사용되었지만 현재는 Linux, Windows에 밀려 서버를 포함하여 실제로 사용되는 점유율은 점점 낮아지고 있음.
  • 현재 UNIX는 다양한 영역에서 수많은 응용프로그램을 구동시키는 개방형 표준 운영체제로 자리잡음.
  • 대부분의 구현이 C 언어 기반이며, 특정 H/W system 종속적인 부분만 수정할 경우 새로운 H/W system에서 동작이 가능함.
  • 초기 UNIX는 Open source였으나 기업에서 활발히 사용되면서 open source 정책이 폐기되었고 이에 대한 반발로 Linux가 등장.
  • 현대적 컴퓨터 OS의 기반이자 원형이 되어준 운영체제로 컴퓨터의 역사상 가장 중요한 위치를 차지함.
  • BSD family들이 UNIX의 소스코드에 기반한 OS임.(BSD family의 OS는 UNIX의 후손이라 볼 수 있어 Genetic UNIX라고도 불림)

LINUX

  • UNIX-like OS임.
  • Linux는 엄밀히 말하면 Kernel이라고 봐야하고, 그 외의 구성요소는 GNU project에 의해 만들어짐. 때문에 GNU/Linux라고 불리기도 함.
  • 공개형 open source이기 때문에 이를 기반으로 다양한 파생 OS 개발이 가능.
  • interactive system(~time sharing system)이면서 multi-processing 및 multi-user system임.
  • 높은 신뢰성과 함께 다양하고 강력한 네트워크 기능을 제공함.
  • Debian 계열(Debian, Mint, Ubuntu etc), Redhat 계열(Redhat, Fedora, CentOS)로 나누어짐.

References:
1) https://dsaint31.me/mkdocs_site/OS/operating_system/

profile
노정훈
post-custom-banner

0개의 댓글