운영체제 - 1강

컴공거북이·2024년 4월 8일

운영체제

목록 보기
1/9

커널(Kernel)이란?

-> 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하는 역할
-> 컴퓨터의 자원을 관리하는 운영체제의 핵심부분

인터페이스란?

-> 서로 다른 2개의 시스템, 장치 사이에서 정보나 신호를 주고 받는 경우의 접점이나 경계면

오픈소스란?
누구나 검사, 수정 및 개선할 수 있는 소스코드가 포함된 소프트웨어


프로세스와 프로세서

  • process(프로세스) - 실행 중인 프로그램
  • processor(처리기)
    -> CPU와 같은 하드웨어
    -> 프로세서 또는 CPU는 제어장치, 연산장치, 레지스터 그리고 데이터 버스로 구성된 디지털 시스템의 핵심부분

운영체제는 무엇을 하는 가?

  • user와 하드웨어 사이의 중개자 역할
  • 운영체제 목표 : user의 프로그램을 실행하고 user의 문제를 쉽게 해결
    -> 컴퓨터시스템을 사용하기 쉽게~
    -> 효율적인 방법으로 컴퓨터 하드웨어 사용

컴퓨터 시스템 구조

컴퓨터 시스템은 다음과 같이 4개의 구성품으로 나눌 수 있다.

1)하드웨어 : 기본적인 컴퓨터 자원 제공
-> CPU, memory, I/O devices

2)운영체제 : 어플리케이션과 사용자간의 하드웨어 제어 및 조정

3)응용프로그램(Application programs):
시스템 리소스를 사용하여 사용자의 컴퓨팅 문제를 해결하는 방법을 정의, 쉽게 이야기하면 운영체제에서 실행되는 모든 소프트웨어
-> 워드 프로세서, 컴파일러, 웹 브라우저, 데이터베이스 시스템, 비디오 게임

4)사용자(User):
-> 사람, 기계, 다른 컴퓨터들


운영체제가 하는 일

-> 시점에 따라 다름.
-> 사용자는 편리함과 우수한 성능을 원하고 리소스 활용에는 별 관심없음.
-> 그러나 메인프레임이나 미니컴퓨터와 같은 공유 컴퓨터는 모든 사용자를 만족시켜야 함.
-> 워크스테이션과 같은 전용 시스템의 사용자는 전용 리소스가 있지만 서버의 공유 리소스를 자주 사용함.
-> 휴대용 컴퓨터는 리소스가 부족하고 사용성과 배터리 수명에 최적화되어 있음.
-> 장치나 자동차에 내장된 컴퓨터와 같이 사용자 인터페이스가 거의 없거나 전혀 없는 컴퓨터도 있음.


운영체제 정의

  • OS는 "리소스 할당자" 입니다.
    -> 모든 리소스를 관리하고 상반된 요청 사이에서 효율적인 리소스 사용을 결정합니다.
  • OS는 "제어 시스템" 입니다.
    -> 프로그램의 실행을 제어하여 오류 및 컴퓨터의 부적절한 사용을 방지합니다.
  • '컴퓨터에서 항상 실행 중인 유일한 프로그램'은 바로 "커널(Kernel)"입니다. 그 외의 것들은 시스템 프로그램이거나 응용 프로그램입니다.

커널(Kernel)이란?
컴퓨터 운영체제의 핵심이 되는 컴퓨터 프로그램으로서 컴퓨터 자원들을 관리하는 역할


컴퓨터 시작

  • 부트스트랩(bootstrap) 프로그램은 전원을 켜거나 재부팅할 때 가장 먼저 돌아가는 프로그램이다.
    -> 일반적으로 펌웨어(firmware)로 알려진 ROM 또는 EPROM에 저장되어 있습니다.
    -> 시스템의 모든 측면을 초기화합니다.
    -> 운영 체제 커널을 로드하고 실행을 시작합니다.

펌웨어(firmware)란?
-> ROM에 포함된 소프트웨어, 하드웨어된 소프트웨어
컴퓨터 시스템의 활용범위가 넓어지고 소프트웨어에서 전달되는 정보 역시 방대해지다 보니 하드웨어 내 제한된 종류의 논리회로만으로는 다양한 상황에 모두 대응하기 어렵게 되었다.
새로운 소프트 웨어가 등장할 때마다 그에 해당하는 기능을 갖춘 논리회로를 추가한 하드웨어를 새로 만들기엔 비용이나 시간이 낭비된다.
그래서 개발자들은 하드웨어 내부의 제어부분에 저장공간을 만들어 논리회로 기능을 보강하거나 대신하는 프로그램을 넣을 수 있도록 하였다. 이것이 바로 펌웨어이다.
ex) 버튼을 눌렀을 때 led켜짐, cd를 넣으면 어떠한 기능을 할 수 있도록 준비

ROM이란?
(Read Only Memory)의 약자로 전원이 차단되어도 데이터를 계속 갖고 있기 때문에 "비휘발성 메모리"라고 한다. (기억장치)

EPROM이란?
기억장치 ROM의 한 종류이고 자외선을 자용하여 기록된 내용을 지우고, 전류로 다시 기록 할 수 있는 ROM 메모리

컴퓨터 시스템 조직

컴퓨터시스템 운영
-> 공유 메모리에 대한 액세스를 제공하는 하나 이상의 CPU, 장치 컨트롤러가 공통 버스를 통해 연결됩니다
-> 메모리 사이클을 위해 경쟁하는 CPU와 디바이스의 동시 실행

disk란?
컴퓨터에서 데이터를 저장하는 데 사용되는 주요한 저장 장치

--

컴퓨터 시스템 작동

  • I/O 장치와 CPU가 동시에 실행될 수 있습니다.
  • 디바이스(장치) 컨트롤러는 특정 디바이스 유형를 담당합니다.
  • 각 디바이스 컨트롤러에는 로컬 버퍼(local buffer)가 있습니다.
  • CPU는 데이터를 메인 메모리에서 로컬버퍼(local buffer)로 이동시킵니다.
  • I/O는 디바이스에서 컨트롤러의 로컬 버퍼(local buffer)로 이동합니다.
  • 디바이스 컨트롤러가 인터럽트(interrupt)를 발생시켜 CPU에게 동작을 완료했음을 알립니다.

디바이스 컨트롤러(device controller)(장치제어기)란?
특정한 하드웨어 장치를 제어하고 관리하는 부품입니다. 해당 I/O 장치를 관리하는 일종의 작은 CPU로 볼 수 있습니다.
ex) 키보드, 마우스, 프린터 등이 입출력을 처리하기위해 디바이스 컨트롤러를 필요로함

로컬 버퍼(local buffer)란?
디바이스 컨트롤러가 데이터를 일시적으로 저장하는 장소입니다.
ex) 카톡에 move라는 단어를 치고 enter를 누르면 move가 보내진다. 이때 enter를 누르기 전 move가 저장되는 곳이 로컬 버퍼입니다.

메인 메모리란?
메인 메모리는 RAM(Random Access Memory)라고도 불리며 중앙 처리 장치(CPU)가 데이터를 읽고 쓸 수 있는 주기억 장치입니다. CPU가 프로그램을 실행하는 동안 데이터와 명령어를 임시로 저장하는 역할을 하며 RAM은 휘발성 메모리입니다. 즉, 전원이 꺼지면 데이터는 삭제됩니다.

인터럽트(interrupt)란?
컴퓨터에서 발생하는 이벤트로서, 현재 수행 중인 프로그램의 실행을 중단하고, 다른 프로그램이나 하드웨어 장치의 요청에 응답하는 원리입니다.


인터럽트(interrupt)의 공통기능

-> 인터럽트(interrupt)는 일반적으로 인터럽트 벡터(interrupt vector)를 통해 모든 서비스 루틴의 주소를 포함하는 인터럽트 서비스 루틴에 제어권을 전달합니다.
-> 인터럽트 아키텍처는 인터럽트된 명령의 주소를 저장해야 합니다.
-> 트랩 또는 예외(exception)는 오류 또는 사용자 요청으로 인해 발생하는 소프트웨어에서 생성된 인터럽트입니다.
-> 운영 체제는 인터럽트기반(interrupt-driven)이다.

- 인터럽트(interrupt)란?
인터럽트(Interrupt)는 프로세스 실행 도중 예기치 않은 상황이 발생할 때 발생한 상황을 처리한 후 실행 중인 작업으로 복귀하는 것입니다. 비동기식 인터럽트 또는 하드웨어 인터럽트라고 합니다. 인터럽트는 현재 실행 중인 프로그램의 흐름을 중단하고, 우선순위가 높은 작업을 처리하는 데 사용됩니다. 예를 들어, 키보드나 마우스에서 입력이 발생하면 해당 장치로부터 인터럽트가 발생하여 CPU에게 해당 입력을 처리하도록 알립니다.
- 비동기식(Asynchronous)이란?
어떤 기준에 맞춰서 이벤트가 발생하는 것이 아니라 그때그때 정해진 기준없이 이벤트가 발생하는 것을 의미합니다.

인터럽트 벡터(interrupt vector)란?
인터럽트 벡터는 인터럽트가 발생했을 때, 그 인터럽트를 처리할 수 있는 서비스 루틴들의 주소를 가지고 있는 공간입니다. 컴퓨터 시스템에서 인터럽트가 발생했을 때, 해당 인터럽트를 처리하기 위한 서비스 루틴의 주소를 가리키는 특별한 데이터 구조입니다.

인터럽트 서비스 루틴(interrupt service routine)(ISR)?
어떤 인터럽트가 발생했을 때 해당 인터럽트를 어떻게 처리하고 작동해야 할지에 대한 정보로 이루어진 프로그램이다.

인터럽트가 발생하면 컴퓨터는 해당 인터럽트에 대응하는 서비스 루틴의 주소를 인터럽트 벡터에서 찾아서 해당 서비스 루틴으로 제어를 전달합니다.

- 트랩(trap) or 예외(exception)이란?
트랩(trap)은 실행중인 프로그램 내에 테스트를 위해 특별한 조건을 걸어놓은 것을 의미합니다. 동기식(Synchronous) 인터럽트 또는 소프트웨어 인터럽트라고 합니다.

- 동기식(Synchronous)이란?
기준에 맞추어 또는 시간에 맞추어 정해진 일을 진행시키는 것

인터럽트기반(interrupt-driven)이란?
데이터의 입출력이 이루어지는 동안 CPU는 다른 작업을 할 수 있기 때문에 현대 운영체제는 인터럽트 기반의 시스템을 사용하고 있습니다.


인터럽트 핸들링

  • 운영체제는 레지스터프로그램 카운터를 저장하여 CPU의 상태를 보존합니다
  • 발생한 인터럽트의 유형을 결정합니다.
    -> 폴링(polling)
    -> 벡터형 인터럽트 시스템
  • 각 인터럽트 유형에 대해 어떤 조치를 취해야 하는지를 결정하는 코드부분이 따로 있습니다.

레지스터란?
CPU(Central Processing Unit)가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치입니다.

프로그램 카운터(Program counter, PC)란?
CPU 내부에 있는 레지스터 중의 하나로서, 다음에 실행될 명령어의 주소를 가지고 때문에 "명령어 포인터"라고도 합니다.

폴링(polling)이란?
무한 루프에서 이벤트의 발생여부를 계속 살펴보다가, 이벤트가 발생하는 경우 해당 작업을 실행하는 방법입니다.

백터형 인터럽트 시스템이란?
인터럽트가 발생할 때마다 인터럽트를 요청한 장치가 인터럽트 서비스 루틴의 시작번지를 CPU에게 전송하거나, 또는 CPU에게 전송하거나, 또는 CPU가 각 인터럽트의 종류에 따라 미리 지정된 메모리 번지에서 인터럽트 벡터를 읽어서 이를 인터럽트 서비스 루틴의 시작번지로 사용하는 방식입니다.


I/O 구조

  • I/O가 시작된 후 I/O완료 시에만 사용자 프로그램으로 컨트롤이 돌아갑니다.
    -> Wait(대기) 명령은 다음 인터럽트까지 CPU를 대기시킵니다.
    -> 대기 루프(메모리 엑세스를 위한 경쟁)
    -> 최대 한 번의 I/O 요청을 처리할 수 있으며 동시에 I/O 처리를 할 수 없습니다.

  • I/O가 시작되면, I/O 완료를 기다리지 않고 제어가 사용자 프로그램으로 반환됩니다.
    -> 시스템 콜 - 사용자가 I/O 완료를 기다릴 수 있도록 OS에 요청합니다.
    -> 디바이스 상태 테이블은 각 I/O 장치에 대한 항목을 포함하며, 해당 장치의 유형, 주소 및 상태를 나타냅니다.
    -> OS는 I/O 디바이스 테이블에 인덱스를 지정하여 장치 상태를 확인하고, 인터럽트를 포함하는 테이블 항목을 수정합니다.

시스템콜이란?
사용자 프로그램이 특정 기능을 실행하기 위해 운영 체제에 요청할 때 시스템콜을 사용합니다.

'테이블'이란?
데이터를 구조화하고 조직하는 데 사용되는 일반적인 개념입니다.


Storage 정의와 표기법

컴퓨터 저장의 기본 단위는 비트(bit)입니다. 비트는 0과 1 두 가지 값 중 하나를 포함할 수 있습니다. 컴퓨터의 모든 저장은 비트에 기초합니다.
ex) 충분한 비트가 주어지면 컴퓨터가 숫자, 문자, 이미지, 영화, 소리, 문서, 프로그램 등 많은 것을 나타낼 수 있음

바이트(byte)는 8비트이고 대부분의 컴퓨터에서 편리한 정보조각 중 가장 작습니다. 덜 일반적인 용어는 단어로 주어진 컴퓨터 아키텍처의 고유 데이터 단위입니다.
ex) 대부분의 컴퓨터에는 비트를 이동하라는 명령이 없지만 바이트를 이동하라는 명령이 있음.

단어는 하나 또는 그 이상의 바이트로 구성됩니다. 컴퓨터는 한 번에 바이트가 아닌 기본 단어 크기로 많은 작업을 실행합니다.
ex) 64비트 레지스터와 64비트 메모리 주소 지정을 가진 컴퓨터는 일반적으로 64비트(8바이트) 워드를 가지고 컴퓨터는 한 번에 바이트가 아닌 기본 단어 크기로 많은 작업을 실행합니다.

컴퓨터 스토리지는 대부분의 컴퓨터 처리량과 함께 일반적으로 바이트 및 바이트 모음으로 측정되고 조작됩니다.
(ㅋㅁㄱㅌㅍ) ->(먹기에) 커? 먹고 타파(해)라고 순서를 외우심이 어떨지....

컴퓨터 제조업체들은 종종 이 숫자들을 반올림하여 1메가바이트는 100만 바이트, 1기가바이트는 10억 바이트라고 말합니다. 네트워킹 측정은 비트 단위로 주어지는데, 이는 네트워크가 한 번에 데이터를 조금씩 이동시키기 때문입니다.


Storage 구조

  • 메인 메모리 : CPU가 직접 액세스할 수 있는 대용량 저장 미디어만 제공
    -> 랜덤 액세스
    -> 일반적으로 휘발성입니다
  • 보조 스토리지 : 대용량 비휘발성 스토리지를 제공하는 메인 메모리 확장
  • 하드 디스크 : 자기 기록 재료로 덮인 단단한 금속 또는 유리 플래터(쟁반)
    ->디스크 표면은 논리적으로 트랙으로 나뉘며 섹터로 세분화됩니다
    ->디스크 컨트롤러는 장치와 컴퓨터 사이의 논리적 상호작용을 결정합니다
  • 솔리드 스테이트 디스크(solid state disk)(SSD): 하드 디스크보다 빠른 비휘발성
    -> 각종 기술
    -> 더욱 인기를 얻고 있음
  • 섹터란?
    트랙을 구성하는 최소 단위 = 가장 작은 저장 단위
  • 트랙이란?
    데이터가 저장되는 길. 트랙은 섹터로 구성되며 섹터에 데이터가 저장되고, 그 섹터가 쭉 나열되어 있는 것이 트랙

솔리드 스테이트 디스크(solid state disk)(SSD)란?
전자식 구조로, 반도체 기반의 메모리 칩으로 데이터를 저장하는 장치

*참고사항


Storage 계층

  • 계층별로 구성된 스토리지 시스템
    -> 스피드
    -> 비용
    -> 변동성
  • 캐싱(cashing) : "Caching"은 정보를 더 빠른 저장 시스템으로 복사하는 것을 의미합니다. 주 메모리가 보조 저장소의 캐시로 볼 수 있습니다.
  • 장치 컨트롤러에 대한 장치 드라이버가 I/O를 관리합니다.
    -> 컨트롤러와 커널 간의 균일한 인터페이스를 제공합니다
profile
잘못된 정보가 있을 경우 언제든 댓글로 남겨주세요 :) 감사합니다!!

0개의 댓글