[운영체제란?]
운영체제는 컴퓨터 내의 하드웨어와 사용자 및 다른 모든 소프트웨어를 관리시켜주는
하드웨어 바로 윗단에 설치되어 있는 소프트웨어입니다.
ex) Windows, Max OS, Linux, Unix, Android, IOS 등
운영체제와 컴퓨터시스템의 구조
[운영체제의 종류]
운영체제는 앞단의 어떤 인터페이스를 두누냐에 따라 GUI와 CUI로 나눌 수 있음
GUI(Graphical User Interface)는 그래픽을 사용하여 컴퓨터와 상호작용하는 인터페이스
ex) windowOS, macOS
CUI(Character User Interface)는 사용자가 키보드만을 사용하여 문자를 기반으로 컴퓨터와 상호작용하는 인터페이스
ex) MS-DOS
운영체제의 역할
운영체제의 커널이 담당
커널 -> SSD -> RAM -> <- CPU
- CPU 스케줄링과 프로세스 상태관리 (어떠한 프로세스를 우선순위를 둘거야)
- 메모리관리(램에 올라가는 메모리를 어떻게 관리 -> 스와핑, 페이지 폴)
- 디스크 파일 관리(프로그램 설치할 때 어떻게 저장)
- I/O 디바이스 관리(키보드 마우스 컨트롤)
운영체제의 구조
컴퓨터 시스템의 구조
- CPU : 인터럽트에 의해 메모리에 존재하는 명령어를 해석해서 실행하는 일꾼
- DMA컨트롤러 : CPU의 일을 보조하는 일꾼
- 메모리 : 전자회로에서 데이터, 상태 등을 기록하는 장치(작업장)
- 타이머 : 특정 프로그램에 시간을 다는 역할
- 디바이스 컨트롤러 : IO디바이스들의 작은 CPU
- 로컬버퍼 : 디바이스에 달려 있는 작은 메모
Deivce controller :
각각의 I/O 장치들은 각 장치를 전담하는 작은 CPU가 붙에 있게 되는데
그건 device controller라고 부릅니다.
CPU는 device controller에게 데이터를 읽어오라고 일을 시키고,
그럼으로써 CPU는 메모리 작업을 하고 I/O device의 작업은 device controller에게 시켜
일을 분담하게 됩니다.
(disk의 내부를 통제하는 것은 cpu의 역할이 아니고 device controller의 역할입니다.)
Local buffer :
여기서 메인 cpu의 작업공간인 Main Memory가 있듯이
이러한 device controller들도 그들의 작업 공간이 필요합니다.
그걸 Local buffer라고 부릅니다.
Registers :
CPU안에 Memory보다 빠르면서 정보를 저장할 수있는 공간들
Mode bit :
CPU안에서 실행되는 것이 OS인지 사용자 프로그램인지를 구분해주는 역할을 합니다.
mode bit 0일 때 ==> OS가 CPU를 갖고 있기 때문에
메모리접근, I/O device접근권한을 다 갖게 됨
mode bit 1일 때 ==> 사용자 프로그램이 CPU를 갖고 있기 때문에 제한된
Instruction만 CPU에서 실행이 가능합니다.(보안측면)
Interrupt line :
CPU에 붙어 있으면서 I/O장치에서 Local buffer로 내용을 다 읽어들어왔다면,
이것은 CPU에게 알려야 하는데, 이 알리는 행위를 하기위해 Interrup line이 존재합니다.
Interrupt line이 있기 때문에 CPU는 자신의 일을 하다가, Interrup line에 신호가 들어오면,
하던 일을 멈추고, Interrupt와 관련된 일을 수행합니다.
Timer 의 동작 :
특정 프로그램이 CPU를 독점하지 못하게 막는 하드웨어 입니다.
예를들어 for문이나 while문을 통해 무한루프가 들어오게 될 시,
CPU는 그 프로그램에서 빠져나오지 못하고 분할작업을 하지 못하게 됩니다.
여기서 OS가 CPU를 가지고 있다가 여러 프로그램이 실행될 때 CPU를 넘겨주게 되는데
그래서 CPU가 Instruction을 실행하다가 정해진 시간이 되면 timer는 CPU에게 Interrupt를
걸어주게 됩니다. 그럼으로써 CPU제어권은 OS에게 넘어갑니다.
이 과정에서 또한 timer에게 값을 셋팅한 다음 넘겨주게 되고
promgram이 CPU를 쓰다가 시간만료가 되면 timer interrup가 들어오고 CPU제어권이 OS에게
넘어가고 그 OS는 다음 프로그램에게 CPU를 넘겨주고 이런 과정들을 OS가 관리해주게 됩니다.
DMA controller :
직접 Memory를 접근할 수 있는 controller
I/O 장치가 너무 자주 Interrupt를 걸게 되면 CPU가 방해를 많이 받기 때문에
DMA controller를 통해 중간에 local buffer에 들어오는 작업이 끝났으면
DMA가 직접 메모리에 복사합니다. 그렇게 작업이 끝난 후 CPU한테
Interrupt를 한번만 걸어주기 때문에 CPU를 효율적으로 관리할 수 있습니다.
CPU
산술논리연산장치, 제어장치. 레지스터로 구성되어있는 장치. 인터럽트에 의해 메모리에 존재하는 명령어를 해석해서 실행하는 일꾼
산술논리연산장치
ALU(arithmetic and logical unit, ALU)는 덧셈, 뺄셈, 곱셈, 나눗셈 등 산술연산과 논리연산을 하는 회로장치를 말함
제어장치
CU(control unit, CU)는 프로세스의 조작을 지시하며 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정
레지스터
CPU안에 있는 매우 빠른 임시기억장치
'CS > OS' 카테고리의 다른 글
[OS] 인터럽트/시스템 콜 (0) | 2023.07.28 |
---|---|
[OS] Memory Management (0) | 2023.04.20 |
[OS] Deadlock (0) | 2023.04.15 |
[OS] CPU Scheduling (0) | 2023.03.18 |
[OS] CPU Scheduling (1차정리) (0) | 2023.03.17 |