Peony의 기록 창고 🌼
반응형

 

컴퓨터 시스템 구조

1. 단일 처리기 시스템(Single-Processor System)

  • 대부분의 시스템 : 하나의 처리기를 이용 -> 범용 CPU가 하나 있는 시스템
  • 범위가 넓고, 다양

2. 다중처리기 시스템(Multiprocessor System)

  • 밀접한 통신을 하는 둘 이상의 처리기들을 가지며, 컴퓨터 버스, 클록, 메모리와 주변장치를 공유
  • 장점
    1. 증가된 처리량 : 작업 속도 증가
    2. 규모의 경제 : 비용 절약(경제성)
    3. 증가된 신뢰성 : 한 처리기의 고장이 시스템 정지를 의미하지 X
  • 시스템 구성
    1. 비대칭 다중 처리(Asymmetric Multiprocessing)
      • 주 처리기 : 작업을 스케줄, 종속 처리기에 작업을 할당 ( 주 처리기만 OS를 수행)
      • 다른 처리기 : 주 처리기의 명령 수행, 미리 정의된 태스크 수행
    2. : 하나의 '주 처리기(Master)'가 시스템 전체를 제어 -> 주종관계
    3. 대칭적 다중 처리(SMP : Symmetric Multiprocessing)
      • 각 처리기 : 운영체제를 동시에 수행, 각자의 작업을 수행
    4. : 모든 처리기가 대등함 -> 주종 관계 X

 

CPU를 설계하는 최근의 경향

: 하나의 칩에 여러 개의 코어(Core)를 포함시키는 것

  • 다중코어 CPU : 운영체제에게는 N개의 처리기를 가진 시스템으로 보임(칩 레벨 멀티프로세서(CMP))
  • 블레이드 서버
    • 다중처리기 시스템과 차이점
    • : 각 블레이드 처리기 보드는 독립적으로 부팅될 수 있고, 자기 자신의 운영체제를 수행
      -> 여러 독립적인 다중처리기 시스템으로 구성
  • : 가장 최근에 개발된 서버, 다수의 처리기 보드 및 입출력 보드, 네트워킹 보드들이 하나의 섀시 안에 장착되는 형태를 가짐

 

클러스터형 시스템

image

  • 하나의 독립적인 컴퓨터들이 저장장치를 공유하고, LAN 같은 고속의 근거리 통신망으로 연결된 시스템
  • 역할
    • 가변적인 업무 부하 처리
    • 그 중 한 대가 고장날 경우에도 운영이 계속되도록 여러 대의 컴퓨터 시스템을 서로 연결해 마치 하나의 컴퓨터처럼 행동
    • '병렬 처리'나 '부하 분산' 및 '고장 대비' 등의 목적에 사용
    • 높은 '가용성' 및 '신뢰성'을 제공
      : 클러스터 내 하나 이상의 컴퓨터 시스템이 고장 나더라도 서비스는 계속 제공

 

다중처리 시스템도 저장장치 또는 메모리를 공유하는데 차이점이 뭘까?

클러스터형 시스템 : 두 개 이상의 독자적 시스템이 연결되어 있다.

다중처리 시스템 : CPU가 여러개 일 뿐, 메모리나 저장장치를 공유함. -> 전체가 1개의 시스템

 

클러스터형 시스템의 구성 형태

  1. 비대칭형 클러스터링(Asymmetric Clustering)
    • 한대의 서버가 애플리케이션을 실행하고, 다른 서버는 긴급 대기 모드 상태를 유지
    • 서버가 고장나면, 긴급 대기 모드의 호스트가 활성 서버가 됨
  1. 대칭형 클러스터링
    • 둘 이상의 호스트들이 응용 프로그램을 실행시키고 서로를 감시
      -> 가용한 하드웨어를 모두 사용하기 때문에 대칭형 구성이 효율적
  1. 병렬 클러스터
    • 여러 호스트가 공유 저장장치 상의 동일한 자료를 접근할 수 있게 함
  2. WAN을 이용한 클러스터링

 

운영체제 구조

운영체제의 가장 중요한 면은 ‘다중프로그래밍’ (Multiprogramming) 을 할 수 있는 능력

다중프로그래밍 : 여러개의 작업이 동시에 주 기억장치에 적재, CPU : 이 작업들을 번갈아가며 실행함으로써 이용율을 증가시킴

  • 다중 프로그래밍을 지원하기 위해서 요구되는 OS 기능들
    • 시스템이 제공한 I/O 루틴
    • 메모리 관리
    • : 시스템은 여러 작업들에 메모리를 할당해야 함
    • CPU 스케줄링
      : 시스템은 실행 준비중인 여러 작업 중에 하나를 선택해야 함
    • 저장장치 할당

 

시분할( Time sharing)

: 다중 프로그래밍의 논리적 확장.

tip) 시간을 분할한다는 것은? CPU의 time을 서로 분할해서 사용한다는 것!

 

시분할 운영체제 특징

  • 동시에 많은 사용자가 컴퓨터를 공유하도록 함
  • '응답시간'이 짧아야함(1초 이내)
  • 각 사용자에게 시분할되는 컴퓨터의 작은 부분을 제공하기 위해서 'CPU 스케줄링', '다중 프로그래밍' 사용
  • 적절한 응답시간을 제공하는게 중요 ⭐️
    • 가상 메모리 기법

 

운영체제 시스템 실행 방식

현대 : 인터럽트 구동식(Interrupt-driven)

  • 사건(Event) : 거의 항상 예외(Exception), 트랩(Trap)을 발생시켜 신호를 보냄
    • 트랩 : 0으로 나누기 or 유효하지 않은 메모리 접근 같은 오류나 S/W에 의해 생긴 인터럽트 (S/W 인터럽트)
  • 이런 보호 기능이 없다면?
    -> 컴퓨터 시스템은 한 순간에 단 하나의 프로세스만을 수행 시킴 or 모든 출력 결과를 의심
    -> 해결책 : 이중모드(Dual-mode)
    • 이중모드
      • 잘못된 사용자, OS 서로를 보호하는 방법 제공
      • 두 개의 독립된 연산 모드 제공을 통해 사용자 모드, 커널 모드를 구분해서 시스템을 구성
      • 모드비트 : 커널모드(0), 사용자 모드(1)
        1. 사용자 모드(User mode) : 사용자를 위해 실행
        2. 커널 모드(Kernel mode) : 운영체제를 위해 실행
      • 모드들 간의 이동을 위해선 항상 허가를 받고 이동해야함 -> System Call
반응형
profile

Peony의 기록 창고 🌼

@myeongju