운영체제 (CSE30101) - 1. Introduction (1주차) #1

‍정진철·2022년 9월 1일
0

Operating System

컴퓨터 시스템 개요

- Chpater 1 : Introduction

1.1) 운영체제가 할일 _ what Operating Systems Do

하드웨어 -> 중앙 처리 장치(CPU), 메모리 및 입출력(I/O) 장치로 구성 , 기본 계산용 자원 제공.
응용프로그램 -> 워드 프로세서, 스프레드 시트 , 컴파일러, 웹브라우저 등 , 사용자의 계산문제 해결을 위해 이들 자원이 어떻게 사용될지 정의.
운영체제 -> 다양한 사용자를 위해 다양한 응용 프로그램 간의 하드웨어 사용 제어/조정하는 역할

  • 컴퓨터 시스템은 하드웨어, 소프트웨어 및 데이터로 구성되어 있다고 볼 수 있음.
    운영체제는 컴퓨터 시스템이 동작시 이들 자원을 적절하게 사용할 수 있는 방법을 제공.
    운영체제는 정부(government)와 유사한데 그 자체로 유용한 기능을 수행하지 못하고 단순히 다른 프로그램이 유용한 작업을 할 수 있는 '환경'을 제공한다.

1.1.1 ) 사용자 관점

사용자가 자원을 독점.
목표는 사용자가 수행하는 작업을 최대화 하는것.
따라서 '사용의 용이성'만을 위해 설계하며 다양한 하드웨어와 소프트웨어 자원이 어떻게 공유되느냐의 자원의 이용에는 전혀 신경 X

1.1.2) 시스템 관점

위에서 말한것처럼 '정부'의 역할로서 크게 작용. 한마디로 '자원 관리자' 이며 제어 프로그램(control Program) : 특히 입출력 장치의 제어와 작동에 깊이 관여.

1.1.3 ) 운영체제 정의

운영체제는 항상 실행중인 커널(가장 범용적 개념) , 응용프로그램 개발을 쉽게 하고 기능을 제공하는 미들웨어 프레임워크 및 시스템 실행중에 시스템을 관리하는 데 도움이 되는 시스템 프로그램이 포함됨.

** 미들웨어: 응용 프로그램 개발자에게 추가 서비스를 제공하는 일련의 소프트웨어 프레임워크 ( ex : Apple의 IOS, Google의 Android)

왜 운영체제를 공부하는가?

  • 거의 모든 코드가 운영체제 위에서 실행되므로 운영체제 작동방식에 대한 지식은 적절하고 효율적이며 효과적이며 안전한 프로그래밍에 중요.
  • 운영체제의 기본지식, 컴퓨터 하드웨어 구동방식 및 응용 프로그램에 제공하는 내용 이해하는것은 운영체제 작성하는 사람들 뿐만아니라 그 위에서 프로그램을 작성하고 운영체제를 '사용'하는 사람들에게도 매우 유용.

1.2) 컴퓨터 시스템의 구성 _ Computer-System Organization

  • CPU
  • 메모리
  • 컨틀롤러(Controller)

컴퓨터 시스템은 하나 이상의 CPU와 공유 메모리 사이의 엑세스를 제공하는 공통 버스를 통해 연결된 여러 장치 컨트롤러로 구성된다.

운영체제에는 각 장치 컨트롤러마다 '장치 드라이버' 존재.
장치 드라이버는 장치 컨트롤러의 작동을 잘 알고 있고 나머지 운영체제 장치에 대한 일관된 인터페이스 제공.

1.2.1) 인터럽트 _ Interrupts

  1. 일반적 컴퓨터작업(입출력 수행 프로그램)시 장치 드라이버는 장치 컨트롤러의 적절한 레지스터에 값 적재.
  2. 그 후 장치 컨트롤러는 레지스터의 내용 검사하여 수행할 작업 결정. (ex : 키보드에서 문자 읽기)
  3. 컨트롤러는 장치 드라이버에게 작업이 완료됬음을 알림. (장치에서 로컬 버퍼로 데이터 전송함으로써)
  4. 장치 드라이버는 해당 요청에 대한 데이터 포인터 반환하며 운영체제의 다른 부분에 제어 넘김.
  • 컨트롤러가 장치 드라이버에게 작업을 완료했다는 사실 알리는 법: 인터럽트

컴퓨터란 ?

  • CPU,Memory로 이루어진 하드웨어를 가지고 SW를 실행시킬 수 있는 이 세상의 모든 기계를 일컫는다.

Example

1. Embeded Sytem : 스마트폰,게임기,스마트워치, 스마트자동차, 공학용계산기, 키오스크 등 -> 공통점: '특정'목적을 위해 설계된 컴퓨터 시스템

  • 임베디드 시스템은 SW뿐만아니라 해당 SW를 실행시킬 수 있는 특정 목적에 맞는 하드웨어 설계 역시 포함된다.

2.PC : 임베디드 시스템과는 대조되는 개념으로 데스크탑과 랩탑 으로 나뉘어짐. (General Purpose를 가지고 다루며 여러가지 목적 수행 가능 , 개인이 쓸 수 있는 ‘범용’ 적인 개념의 시스템)

3) 서버 컴퓨터 : 고성능 SW 탑재 하드웨어 (기상청의 날씨 예측모델, 알파고 등)


Computer system components

  • 하드웨어는 CPU,Memory,I/O(입출력장치)로 구분됨.
  • operarting System(OS)은 하드웨어관리, 자원분배/관리/감독, System call 뿌리기, 하드웨어 사용 가능하기 위한 프로그램에게 인터페이스 제공 등의 역할을 수행.
  • 흔히 user측쪽에 해당하는것이 front-end단이며 system and applicaiton progrmas쪽에 해당하는것이 back-end단에 해당한다.

Computer system organization

  • CPU와 Memory는 독립적으로 존재하지만 그 외 요소들은(disk, mouse, keyboard, printer, monitor : I/O 장치들 ) controlloer가 끼고있음 그리고 크게 이 3가지 요소들은 버스로 연결되있음.

  • 위 사진의 경우 옛날 방식의 설명이며 요즘에는 1개의 칩으로 통합되어 기능을 수행한다.
  • System Controller 단 : CPU,Mermoy,AGP(그래픽 카드) 내재되 있으며 이러한 요소들은 엄청나게 빠른 속도로 연산을 수행함.
    Ex) 엄청난 연산을 CPU가 수행하기 위해서는 엄청나게 많은 메모리에서 데이터를 가져와하며 그래픽카드의 경우 RGB를 한 픽셀에 나타나기 위해 24bit의 데이터가 필요하며 4K이 이상의 화질을 나타내기 위해서도 역시 엄청나게 많은 데이터가 필요시된다.
  • Peripheral Bus controller: 시스템 컨트롤러에 비해서 상대적으로 연산 속도가 느린 연산을 구동.

따라서, 복잡한 하드웨어를 구동시키는 것이 Operating System의 역할이며 resource가 하드웨어라며 OS는 resoure를 manage하는 resource manager라고 볼 수 있다.


  • Abstraction : 하드웨어는 OS의 면면을 다 알지 못하여도 일종의 겉모습만 보고서도 추정 가능. 따라서 사용성이 좋아짐.

  • Sharing: 하드웨어는 1개만 존재하며 CPU 역시 1개만 존재하며 한번에 하나의 일만 수행 가능하다. 하지만 현실에서는 유투브, zoom, 워드 등 다양한 소프트웨어를 동시다발적으로 구동시켜놓고 수행이 가능한데 이러한 특징은 OS가 하드웨어 자원을 다양하게 사용할 수 있도록 지원하며 한정적인 자원을 공유할 수 있게끔 도와주기 때문이다.

  • Protection: 운영체제는 하드웨어의 management unit 을 사용해서 메모리 공간이 할당되지 않으면 감지가능. 한번 할당된 메모리 공간은 운영체제도 건들지못함 해당 프로그램만 사용가능. (자원과 권한 통제 기능)
    즉, 운영체제가 리소스를 관리하면서 지향해야하는 목적. 따라서 관리자의 책임이 중요시됨.

또다른 이름으로는 resource allocator, Contorl Program , Kernel

  • Resource는 (하드웨어) CPU , memory, I/O devices 로 구성되 있음.

    따라서 , 운영체제는 편리함, 효율성을 위해 컴퓨터 하드웨어 자원을 관리하는 소프트웨어이다.

profile
WILL is ALL

0개의 댓글

관련 채용 정보