본문 바로가기

OS

[OS][운영체제] 1. Computer-System Structure & Operating System / 컴퓨터 구조와 OS

반응형
  1. 컴퓨터 구조
  2. Operating System; OS
  3. 컴퓨터 구조 동작
  4. OS 동작
  5. Process 관리
  6. Memory 관리
  7. Storage 관리
  8. Protection & Security
  9. Computing Environments

 

1. 컴퓨터 구조

다음과 같이 4가지로 구성되어 있다

  • 하드웨어
    • 컴퓨터의 기본 자원들을 제공한다
    • ex) CPU, memory, I/O devices
  • OS
    • 유저와 어플리케이션 사이에서 하드웨어 사용을 조작, 제어한다. , 유저와 하드웨어 사이 중추 역할을 맡는다.
  • 어플리케이션
    • 시스템 자원이 유저의 컴퓨팅 문제를 해결하는 방법을 정의한다.
    • ex) 워드, 컴파일러, 웹 브라우저, DB, 게임
  • 유저
    • 사람이나 다른 컴퓨터 등을 지칭한다.

[그림 1] 컴퓨터 구조


2. OS

모든 자원을 효율적으로 관리하며 할당한다.

­에러를 방지하고 부적절한 사용을 막기 위해 프로그램 실행을 제어한다.

  • 커널(Kernel): 컴퓨터에서 항상 작동하는 하나의 프로그램
  • 그 외 시스템과 어플리케이션 프로그램이 있다

- 초기의 컴퓨터에서 부트스트랩 프로그램은 ROM이나 EEPROM(; Electronically Erasable Programmable Read-Only Memory)에 저장되는, 이른 바 Firmware로 동작하였다.


3. 컴퓨터 구조 동작

- 하나의 혹은 다수의 CPUbus(parallel)를 통해 공유 메모리에 접근하고 Device Controller와 연결된다.

- I/O devicesCPU는 동시에 실행할 수 있다.

- Device ControllerLocal buffer를 가지고 있다. 버퍼는 Device(기계적 동작)Device Controller(전기 신호) 사이의 속도 차이를 조절한다. 더불어, I/O 작업이 끝났을 때 Interrupt를 통해 CPU에게 알려준다.

 

[그림 2] Bus로 연결된 Memory-CPU-디바이스

-> 일반적으로 Device-Driver 인터페이스를 이용한다

Interrupt

인터럽트(하드웨어 발생)는 인터럽트 Vector를 통해 Service Routine(인터럽트 타입에 따라 어떤 작업을 할 지 결정)으로 이동하고, 벡터에는 서비스 루틴의 주소와 리턴 주소, 레지스터 등이 포함되어 있다.

 

인터럽트 타입은 다음과 같다.

  • Polling: 인터럽트를 하나씩 확인한다
  • Vectored Interrupt System: 서비스 루틴이 끝난 후에 돌아올 주소 값을 저장한다

- CPU 1개당 하나의 인터럽트를 수행한다.

- Trap(소프트웨어 발생)은 에러나 유저 요청에 의한 인터럽트이다.

- I/O 작업이 끝나면 CPU에 인터럽트를 걸어 알린다.

 

[그림 3] 인터럽트

I/O 구조

아래 [그림 4]와 같이 I/O 작업이 시작되면,

끝날 때까지 기다리는(waiting) 동기식과

곧바로 유저 프로그램으로 돌아가는 비동기식 I/O가 있다.

 

[그림 4] I/O

- 비동기식 I/O

-> 시스템 콜: 유저가 I/O 작업을 기다리도록 OS에 요청한다.

-> Device-status table에 각 I/O device를 넣는다.

 

[그림 5] Device-status table

DMA; Direct Memory Access 구조

OS에 있는 디바이스 driver와 디바이스 Controller는 통신하여 버스를 통해 데이터를 전송한다

 

Device ControllerCPU의 개입 없이 (CPU와 동시에)

  • 버퍼에서 메인 메모리로
  • byte 단위가 아닌 block 단위로
  • 버스를 통해

데이터를 전달한다. (인터럽트 빈도를 줄여 속도를 높인다)

 

저장소 구조

[그림 6] Storage

-> 저장소의 속도/ 비용/ 휘발성에 따라 층이 나뉜다

-> Caching: 메인 메모리(CPU가 직접 접근하는 메모리)가 정보를 더 빠른 저장소 시스템에 복사할 때,

Caching을 이용하여 속도를 높인다.

이 이외에도 다른 층에서도 사용한다. (from slower to faster)

-> Multiprocessor 환경에서는 한 CPU에서 값이 바뀌면 버스를 통해 Cache Coherency를 제공해야 한다. (업데이트)

(<-> Single-processor 시스템은 업데이트를 천천히 해도 된다)


4. OS 동작

  • Multi-programming
    • 작업들을 실행하기 위해 CPU는 항상 하나를 실행하고, 부분 작업들은 메모리에 저장하며, Job Scheduling을 통해 선택되어 실행된다.
  • Time-sharing
    • 작업들을 계속 switching하며 작업이 실행될 때 유저가 각 작업을 interact 할 수 있게 한다

ex) 반응 속도 < 1 이고 100명이라면, 0.01초마다 switching한다. 이는 타이머를 통해 자원 독차지(hogging)와 무한 루프를 막는다.

-> 다수의 유저가 시스템을 공유하며 생기는 데이터 무단 복제 및 자원 사용 문제가 발생할 수 있다

 

- Dual-mode (Kernel / User)OSOS와 시스템을 보호한다

 

[그림 7] Dual-mode

-> 하드웨어에 mode bit을 부여해 kernel(privileged) / user space에 접근한다.


5. Process 관리

프로세스는 실행하는 프로그램에서 일의 단위를 말한다.

Programpassive entity이라면 / Processactive entity이다.

이는 처리하는 Thread의 수에 따라 나뉜다

  • Single-threaded process: 순차적으로 한 번에 하나씩 처리한다
  • Multi-threaded process: 1PC(Program Counter) per Thread

6. Memory 관리

프로세싱 전후의 모든 데이터와 실행되는 모든 명령어는 in Memory

 

Memory는 다음과 같은 일을 수행한다

  • 어느 파트의 메모리가 누구에서 사용되는지 추적한다
  • 어느 프로세스와 데이터가 메모리로 들어오고 나가는지 결정한다
  • 메모리 공간을 할당하고 제거한다

- I/O 작업에서는 버퍼링(Buffering), 캐싱(Caching), 스풀링(Spooling: 한 작업의 데이터를 읽어 바로 이은 다른 작업에 출력)이 포함된다


7. Storage 관리

OS는 정보 저장소의 균등하고 논리적인 view를 제공한다

-> logical 저장소 단위를 physical하게 추상적으로 File이라 한다. -> Directory

-> 드라이브에 의해 조작되고 이는 속도, 용량, 데이터 전송률, 접근 방식(연속적/ 랜덤) 등 다양한 속성을 가진다.

 

File-System 관리

-> 파일과 디렉토리를 만들고 삭제한다

-> 파일, 디렉토리 조작을 초기화한다

-> 파일을 다음 저장소로 매핑한다

-> stable 저장소 미디어로 백업한다

 

Mass-Storage 관리

-> 대용량 저장 장치는 메인 메모리와 장기간 저장될 데이터가 아닌! 데이터를 저장한다

-> Disk 하위시스템은 컴퓨터 속도와 관련된다

-> OS는 저장소를 할당하고, 디스크를 스케줄링 한다

-> 몇몇 저장소(광 저장, 자기테이프)는 빠르지 않아도 된다 -> WORM(Write 1, Read Many) ~ RW(Read-Write) 다양한다


8. Protection & Security

  • 보호(Protection)
    • OS에 의해 프로세스나 자원 접근을 막는다
  • 보안(Security)
    • 내부, 외부 공격에 대응하여 방어한다

-> 시스템은 User IDsGroup ID 등으로 누가 무엇을 접근할지 구분한다


9. Computing Environments

네트워크를 통해 원격 시스템이 같은 자원에 접근할 수 있고, 방화벽으로 보호한다

  • Client-Server Computing
    • ServerClient 요청, 파일 접근에 따라 인터페이스를 제공한다
  • Peer-to-Peer Computing
    • Distributed 시스템 모델(각자의 지역 메모리)이다.
    • 모든 노드가 client 혹은 server 역할을 수행한다.
    • ex) Torrent, Napster
    • 파일 전송, 프린터 공유 같은 간단한 작업에 사용
  • Web-based Computing
    • 언제 어디서나 웹에 접근한다.
  • Cloud Computing
    • 클라우드 자원에 접근할 수 있는 shared pool에 네트워크 접근한다.  
    • ex) Xaas(Everything as a Service)
반응형