Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- Volatile
- OAuth 2.0
- Spring
- builder
- synchronized
- spring security
- Dependency Injection
- factory
- 일급 객체
- Google OAuth
- java
- lombok
- 일급 컬렉션
Archives
- Today
- Total
HJW's IT Blog
OS 개요 본문
OS 란?
컴퓨터의 하드웨어와 소프트웨어를 관리하는 시스템 소프트웨어의 일종이다.
즉, 컴퓨터 시스템의 하드웨어와 응용 프로그램간의 인터페이스를 담당하며, 하드웨어를 관리, 응용 프로그램을 실행 시키는 작업을 한다.
- 컴퓨터 시스템(4가지)
- Hardware - 컴퓨터 자원 제공
- OS - 다른 프로그램에서 하드웨어 사용과 제어를 용이하게
- Resource Allocator: 자원 관리자
- Control Program: User program 과 I/O 장치 관리
- Kernel: 부팅 후 항상 돌아가는 프로그램
- Application Program - 컴퓨터 자원들이 주어진 문제를 어떻게 해결 할 지
- Users - People, machine, other computers
OS는 하드웨어와 소프트웨어 사이의 공통 분모들을 모아 compact 하게 짠 소프트웨어이다.
OS는 중요한 자원 관리자 이다. OS 는 다음 자원들을 관리한다.
- CPU - OS 는 CPU 의 시간을 분할하여 다른 프로세스들이 공평하게 사용 가능하게 한다
- Memory - OS 는 여러 프로세스들이 메모리를 효율적으로 사용할 수 있도록 한다
- 저장 장치 - OS는 하드 드라이브와 같은 저장장치를 관리한다.
- 입출력 장치 - OS는 마우스, 키보드, 프린터와 같은 입출력 장치를 관리하며, 동작을 처리한다
OS 는 입출력 장치와 메모리 사이의 데이터 전송을 위해 Direct Memory Access 방식을 이용한다. DMA는 CPU의 개입 없이 입출력 장치가 메모리에 직접 데이터를 전송할 수 있게 해준다. 이렇게 함으로써 시스템의 전반적인 성능을 향상시키고 CPU의 부담을 줄일 수 있다.

- DMA 방식을 사용하지 않는다면, CPU가 모든 연산 과 데이터 복사를 수행해야 하기 때문에 효율이 굉장히 낮아진다
- 이러한 방식을 통해 True Multiprocessing 이 가능해 진다.
- CPU는 큰 명령만 내리고, 입출력 장치의 각 부분들이 각각 알아서 실행, 결과를 메모리로 복사 하기 때문에 여러 입출력 장치의 동시 실행이 가능하다.
OS는 시분할 시스템을 사용한다
- CPU는 여러직업 사이에 다중화 된다
- 작업은 메모리와 디스크 사이를 왔다 갔다 한다
현대의 OS 기능
- Concurrency - 동시에 여러 프로세스가 돌아간다
- 프로세스끼리 협력도 가능하다 > 컴퓨터는 인간 사회 기반 모델이기 때문
- 동시 병렬로 움직이기에 조종자가 필요하다: CPU scheduling, Resource Management
- Memory Management: 각 프로세스에 메모리 할당
- File System: 저장공간을 각 프로그램에게 할당
Input/Output
- CPU와 device controller 들은 모두 하나의 bus 사용
- Device의 상태를 확인하기 위해 - Status register 확인 후 Control register에 명령어 전달
- Status register: See what is done
- Control register: Tell what to do
- Device의 상태를 확인하기 위해 - Status register 확인 후 Control register에 명령어 전달
- Software-polling synchronous I/O
- CPU가 계속 I/O 작업이 끝났는지 확인한다 ~> 비 효율적
- 그렇다면 효율적인 방법은? - Interrupt
- Interrupt-based asynchronous I/O
- Concurrency 의 핵심적 요소
- 각 I/O 장치가 Interrupt signal 발생
- Interrupt 발생시 CPU는 현 state 를 저장한다 -> CPU 내의 모든 register 저장
- 그 후 interrupt handler 을 불러온다
- Handler가 interrupt 처리 후 CPU는 state를 복구한다
Storage Structures

Protection
- Multiprogramming 을 하기 위해 I/O와 memory는 서로에게서 보호되어야 한다
- 이는 두가지 CPU 모드를 통해 이루어 진다 - User mode, Kernel mode
- Kernel Mode: I/O 장치에 개입 및 인트럽트 가능, 메모리 상태 조작, mode 변경
- 구조적 지원이 필요하다
- User Program들은 system call을 통해 I/O를 실행한다
- System call 은 인트럽트의 일종으로, OS kernel 에서 실행되는 서비스로 user process와 커널간의 인터페이스 역할을 한다.
- Syscall이 호출되었을때 handler 는...
- 상태 저장
- 요청받은 I/O 실행
- 상태 복구, 원 프로그램 복귀
- Syscall 작동 과정
- 사용자가 syscall 호출
- User process 는 호출된 syscall 이 어떤 argument를 필요로 하는지, 그 인자들 전달
- 커널은 user process의 요청 받아들이고 syscall 처리를 위해 cpu 제어권을 가져옴
- 커널은 syscall 실행, 사용자 프로세스가 요청한 작업 수행
- 이때, kernel은 요청 수행에 필요한 자원 할당
- syscall 작업이 끝난후 커널은 cpu 제어권을 다시 user process에 반환
- Syscall이 호출되었을때 handler 는...
- Timer을 사용하여 CPU가 한가지 프로세스에 독점당하는 것을 방지
'OS' 카테고리의 다른 글
| OS:Cooperating Process (0) | 2023.04.06 |
|---|---|
| CPU Scheduler (0) | 2023.04.03 |
| Frame Pointer, Stack Pointer (0) | 2023.04.02 |
| OS: Process (0) | 2023.04.02 |
| OS Management + System Call (0) | 2023.04.01 |