운영체제 기본

다중처리 시스템os

홍박스 2021. 6. 7. 23:25
728x90

 

특수한 시스템을 위한 os

 

cpu를 여러개 두어

동시에 여러 작업을 수행 할 수 있도록 구성됨

 

가용성 높은 ->여러개를 쓸 수 있으니깐

신뢰성 높음 -> cpu한개가 고장나도 다른것으로 할 수 있으니깐

 

 

다중처리 시스템 구조

느슨한 구조 - 각 프로세서들이 독립적으로 운영됨

별도의 메모리를 가짐

통신을 통해서 메세지를 전달 기법 사용

 

밀착된 구조 - 하나의 운영체제가 시스템 전체 자원을 관리함

모든 메모리 공유

메모리 접근 경쟁 해결 필요

 

 

 

 

 

멀티 시스템의 분류방법들

flynn의 분류

제어장치(+-)와 처리장치(명령어 수행)

명령어 흐름(+-*/)자료흐름(1234)의 개수를 기준으로 다중처리 시스템을 분류

 

SLSD

한번에 한개씩의 명령어와 하나의 데이터를 처리하는 단일 프로세서 시스템

사실 멀티 시스템이 아님

 

SIMD

한개의 명령과 여러개의 데이터(벡터연산, 영상처리 등등)

 

MISD

데이터는 같지만 명령어가 여러개

 

MIMD

명령어도 여러개 데이터도 여러개

 

4개 비교 해서 알기

 

 

참고

CPU

코어 : 갯수->GPU는 이게 많음

클럭속도 : 하나의 성능

 

 

 

병렬성

: CPU여러개를

가능한 최대의 병렬 처리율을 얻고자 하는 것이 주목적임

 

어려운이유

: 정확성에 대한 증명이 복잡,디버깅이 어려움

 

 

특정 레벨에서의 병렬처리

  1. job level

두개의 프로그램의

자료가 각각 준비되어 있을경우 

병렬로 처리가 가능

  1. task level

한 프로그램이 여러개의 테스크로 분 할 될 수 있을 때

한 테스크(작업)끼리의 병렬

  1. proocess level 

테스크는 여러개의 프로세스로 분할 가능 하며, 이들 프로세스들은 사용자에 의해서 또는 컴파일러에 의해 자동적으로 병렬 수행

 

P1과 P2가 병렬로 처리 가능한가?

연산 파형 그래프

종속 처리가 되면 병렬 수행 가능

  1. variable level변수단계

 

  1. bit level

거의 x 비트단위의 병렬 연산을 수행

 

 

 

 

 

 

 

병럴성 자동 검출

병렬처리 가능한것을 많이 찾아내서 처리하는게 가장 빠른 방법임

명시적인 병렬성과 묵시적인 병렬성으로 구분됨

명시 : 

직접 이것들은 병렬처리 하라고 적은것

묵시적인 :

 

연산단계축소

교환, 결합, 분배 법칙을 이용하여 수식에 내재된 병렬성을 찾아냄

 

순환분산

순환 본체 내에 있는 일련의 문장들을 병렬로 수행

 

 

 

 

 

 

 

 

다중처리 시스템에서 운영체제의 기능

  1. 일반적인 운영체제를 기능 포함한다
  2. task assignment load balancing 기능 필요 -작업할당과 분배기능필요
  3. 고장 및 복구 기능
  4. 커다란 작업을 나누고 합추는 기능

 

 

 

다중처리 시스템을 위한 운영체제 구성형태

  1. 주종관계 구조
  2. 각 프로세서에 대한 독립수행 구조
  3. 모든 프로세서들의 대칭적 처리 구조

 

마스터만 입출력 실행, 노예는 연산만

*pe = cpu

 

독립수행구조

모든 cpu가 os 를 가진다. 

하지만 상호 공유가 힘듬

 

대칭적 운영체제 구조

모든 프로세스가 동등한 입장 

하지만 복잡함

728x90