▶ Storage Hierarchy - 저장 매체 계층적 구조
위로 갈 수록 속도는 빠르고 가격은 비싸짐
Volatility 특성 : 전기적 특성인데 registers, cache, main memory까지는 전기가 끊기면 데이터 손실이 발생한다. 내부에 저장되어있던 데이터가 모두 사라진다. 그 밑 저장매체는 전기 끊겨도 모두 저장 가능
Caching - 미리 데이터를 저장하는 것
ex) main memory에 저장되어 있는 정보를 cache에 저장해두어 main memory까지 참조할 필요가 없어 더 빠른 속도로 정보 조회 가능
▶ Storage Structure
- Main memory : CPU가 직접 주소값을 참조하여 데이터를 조회한다.
- Secondary storage : Main memory 다음 두 번째로 참조하는 값
- Magenetic disk(일반적인 하드 디스크) : 구조는 메탈 또는 유리로 되어있는 Flatter에 magenetic filed가 형성 되어 있고 한 비트의 정보가 모양에 따라 저장되어있음
- disk 표면에는 위 그림처럼 track으로 나누어져있고 그 안에는 sector로 또 다시 나뉘어져있음
- 그래서 하드에 데이터를 읽고 쓸 때는 sector의 크기 단위로 진행하게 된다
- 디스크 컨트롤러(disk controller)는 기기와 컴퓨터 사이의 논리적 상호 작용을 결정한다.
위 첫 번째 사진처럼 arm assembly에 연결된 장치를 읽는 기기에는 read/write head가 존재한다.
여러 개의 track들이 동기화 된 채 움직이는데 읽기/쓰기 작업을 해야하는 그 head가 가리키고 있는 sector가 오게 되면 작업을 수행하게 된다.
- Optical dist : Magenetic과 헤드의 동작 방식이 다름. Magenetic disk와는 다르게 레이저와 센서가 달려있음
- Magenetic disk
- 장점 : Flatter - Head - Sector 사이 거리가 가깝고 Head에 레이저와 센서가 없어 상대적으로 가벼워 읽기/쓰기를 위한 접근 속도가 빠르다.
- 단점 : Head가 너무 가벼워 Head Crush가 발생할 가능성이 높다.
- Optical disk
- 장점 : Head가 상대적으로 무거워 Head Crush 발생 확률이 낮다.
- 단점 : Head가 상대적으로 무거워 접근 속도가 느리다.
▶ Cacing
역할 : 컴퓨터 시스템 성능 향상을 위한 것으로 미리 가볍고 빠른 저장 매체에 데이터를 저장해두는 것.
▶ 데이터 읽기 및 저장 과정
CPU가 데이터를 읽어들이는 과정은
우선 찾고자 하는 정보를 계층 구조의 맨 위에서부터 찾게 된다. 예를 들어 register에 있나 확인하고 없다면 그 아래 cache, memory ..
이렇게 찾으면서 간다. 그게 만약 magnetic disk에 있다고 하면 magnetic disk의 sector 단위 크기의 데이터를 차례 대로 다시 끌고 올라온다. (disk -> memory -> cache -> register) 그리고 그 과정에서 각 저장소에 정보가 저장되게 된다. 근데 이러한 동작 방식이 Multiprocessor 환경에서는 데이터 일관성 관련된 문제가 발생할 수 있다. 그 문제를 해결하기 위한 가장 효율적인 방법이 BUS를 이용하는 방식이다.
BUS를 통해 데이터 저장이나 변경 등을 모니터링 하고 있다가 변경감지가 발생하게 되면 모두 해당 정보를 변경하는 방법이다.
그렇게 해서 cache의 일관성 문제를 해결한다.
이렇게 해결하려고 해도 분산 처리 환경에서는 각 기기들이 분산되어있어 더욱 복잡해지게 된다. 뒤에서 얘기
▶ 운영 체제의 구조
- 효율적인 방식을 위해 Multiprogramming 방식 등장 → Job scheduling을 통해 메모리에 여러 작업이 동작할 수 있도록 올려놓는 것
스케줄링에 따라 정해진 작업들을 수행한 뒤 다음 스케줄의 작업을 수행
- Timesharing(multitasking) 동작 방식 : Multiprogramming 방식이 아닌 한 작업마다 그 작업을 수행하는 시간이 정해져있는 것 그리고 그 시간이 끝나면 다른 작업을 수행하면서 모든 작업들을 이어나가는 방식
수행해야 하는 작업들이 끝나면 memory를 비우고 그 공간에 새로운 작업을 하드 디스크에서 가져오는 방식 → swapping 방식
- 더욱 효율적인 방식인 virtual mememory 방식은 사용자에게 무한한 memory가 있는 것처럼 하여 작업을 수행할 수 있다. (9장)
▶ 운영 체제의 기능
- 하드웨어에서 발생하는 nterrupt 처리
- 소프트웨어 에러 또는 사용자가 발생시킨 trap이나 exception을 수행 ex) division by zero
- 또 다른 과정에서 발생할 수 있는 infinite loop 문제를 해결. 운영체제로 직접 접근하려는 것을 보호하는 기능
- Infinite loop 해결을 위해 timer 동작 → 미리 설정해놓은 timer의 시간이 지나면 interrupt 발생시킴. 특정 작업을 수행하기 전 타이머를 먼저 설정하여 Infinite loop 발생 방지
▶ 운영 체제의 또 다른 기능으로 모드 변환.
(1) User Mode - 일반 사용자 동작 수행
(2) Kernel Mode - 운영 체제 속 기능 동작 수행
bit 정보를 통해 Mode 판단 및 변환
▶ 운영 체제가 제공하는 기능 : Process Management
- Process는 프로그램의 실행에 대한 것이다. 작업에 대한 단위가 되며, Program은 수동적 개체, Process는 능동적 개체라고도 함
- 단일 쓰레드와 멀티 쓰레드를 구분하는 기준은 Program Counter(PC)의 개수이다.
- 전형적인 시스템은 많은 process, 여러 유저, 여러 개의 OS를 가지고 있다.
▶ 운영 체제가 제공하는 기능 : Process Management Activities
- User and System Processes를 생성하고 삭제하는 기능
- Processes를 중단하거나 재개하는 기능
- Processes 동기화 기능
- Processes 사이 communication 기능
- 사용할 수 있는 자원 배분의 실패가 일으키는 deadlock을 처리하는 기능
▶ 운영 체제가 제공하는 기능 : Memory Management
- CPU가 직접 접근하는 곳이기 때문에 모든 instructions들이 실행되기 위해서는 memory 상에 존재해야한다.
- 어떤 task가 하드 디스크에서 memory로 올라올 것인지 체크 또 memory를 차지하고 있는 task를 언제 disk로 내릴 것인지에 대한 정보를 관리
- 메모리 공간을 할당하거나 해제하는 기능
▶ 운영 체제가 제공하는 기능 : Storage Management
- OS는 저장 관련된 정보를 일반적이고, logical view를 제공해야함 → PC에서는 파일 시스템 형태로 제공
- 각 device를 운영할 수 있어야 함 ex) disk drive, tape drive
- 각 기기들은 모두 속도도 다르고, 성능도 다르고, 데이터 전송 속도 방식 모두 다르기 때문에 이를 운영할 수 있어야 함
- File System을 관리
- 파일은 대부분 디렉터리 형태로 저장
- 누가 접근하여 사용할지에 대한 접근 권한에 관한 것을 관리
- 파일을 생성하고 삭제하고 조작하고 백업하며 엮는 형태에 관한 것을 관리
▶ 운영 체제가 제공하는 기능 : Mass-Storage Management
: 훨씬 더 큰 기기 (Disk부터 ~)
- Disk subsystem을 어떻게 관리하느냐에 따라 컴퓨터 전체 시스템 성능이 좌지우지된다. 이를 관리하는 기능
- 비어있는 기기 공간 관리
- Storage 할당
- Disk 스케줄링
- Optical Storage, magenetic tape 모두 관리해야하는 대상
- Varies between WORM(write-once, read-many-times) and RW(read-write)
▶ 운영 체제가 제공하는 기능 : I/O Subsystem ( 컨트롤러 )
- 운영체제를 이용하여 사용자들이 각종 하드웨어 디바이스를 쉽게 사용할 수 있게 함
- I/O의 Memory management는 buffering(속도차이가 클 때 완충 작용), caching(속도가 더 빠른 쪽으로 미리 데이터 저장), spooling(어떤 작업의 출력값을 어떤 작업의 입력값으로 연결)을 포함하고 있음
- 어느 디바이스든 공통적으로 실행되어야 하는 기능이 있을 것 그것을 General device-driver
▶ 운영 체제가 제공하는 기능 : Protection and Security
- 보호 : 운영체제에 의해 정의된 어떤 자원들에 대해 접근제어를 할 수 있는 방법
- 보안 : 내부/외부의 시스템 공격을 보호 (디도스, WORM, VIRUS)
- 시스템은 사용자를 구분한다. 일반적으로 사용하는 방법은 사용자 ID와 비밀번호 ID를 이용 - 중복 x
- Group ID를 사용할 수도 있음
- 권한 향상
▶ 운영 체제가 제공하는 기능 : Computing Environments
< Offic Environment >
- PC가 네트워크와 연결하고 Batch와 Timesharing 기술에 대해 제공
- Network에 물린 여러 시스템들에 대한 Portals 서비스 제공
< Home Networks >
- Modems 이용
- 현재는 Now firewalled, networked
< Client-Server Computing >
- 여러 사용자가 존재
< Peer-to-Peer Computing >
- 동등한 환경의 컴퓨터가 1:1로 P2P 네트워크에서만 사용할 수 있음
- 좀 더 넓은 환경에서 찾을 수 있는 discovery protocol 존재
< Web-Based Computing >
- 일반적인 웹 기반 컴퓨팅
< Cloud Computing >
- Storage 공간을 서비스 측면에서 제공
'CS > OS' 카테고리의 다른 글
[OS] Process (2) : 프로세스 (0) | 2023.04.04 |
---|---|
[OS] Process (1) : 프로세스 (0) | 2023.03.28 |
[OS] - OS Structure(2) : System Program, Virtual Machine (0) | 2023.03.21 |
[OS] - OS Structure(1) : System Call (4) | 2023.03.18 |
[OS] - OS 소개(1) : 컴퓨터 구성, I/O Structure (0) | 2023.03.09 |