SoftWare Study/Operating System

공룡책 - 운영체제 정리1

KoTiv 2021. 11. 12. 17:36
반응형
SMALL

본 게시물은 Abraham Silberschatz의 Operating System Concepts  공룡책을 참고하며 

개인적으로 공부 및 정리한 자료입니다. 

 


1 INDEX

- OS

- COMPUTER-SYSTEM ( Organization / Architecture / Structure / Operation )

   Organization - ( interrupt / I/O structure / Storage structure & hierarchy / Caching / Memory Access  ) 

    Architecture - ( )

    Structure - ( )

    Operation - ( ) 

 

- MANAGEMENT ( Process / Memory / Storage  ) 

- PROTECT SECURITY

- KERNEL

- Environments

- OpenSourceOperating System.

 

-운영체제란?

일종의 시스템프로그램으로 유저와 컴퓨터의 중개자(인터페이스) 역할을 담당하는 프로그램.

 1-1. 자원 할당자로 자원 사용을 위해 상충되는 요청 사이에서 결정 및 모든 자원을 관리함 

 1-2. 제어 프로그램으로 컴퓨터의 오류 및 부적절한 사용을 방지하기 위해 프로그램 실행을 제어.

 1-3.  kernel = "컴퓨터에서 항상 실행되는 하나의 프로그램"

 

 

-운영체제 목적.

1. 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공.

2. 컴퓨터를 더 편리하게 사용하기위한 환경을 사용자에게 제공.

3. 효율적인 컴퓨터하드웨어 관리를 위함 - 컴퓨터 시스템 자원의 효율적 관리를 함.

 

-Computer System Structure.

컴퓨터 시스템은 아래의 구조와 같이 크게 4개의 구성요소로 나누어짐. 

User
Application programs (+ Utility )
Operating System
HardWare

 

1. Hardware

기본적인 자원을 제공 [ CPU , Memory, I/O device ] 

2.Operating System

사용자와 다른 응용프로그램 사이에서 제어역할을함 

3. Application programs

프로그램 사용시 시스템 자원 사용 방법등

[Word Processor, compilers, web Browsers, ect... ]

4. User 

Client , people , other machine , ... etc

 

 

 

 

 

-Computer Set up  [ Bootstrap program ]

Bootstrap Program은 Power up 또는 reboot할때 쓰는 프로그램으로 ROM 또는 EPROM(?)에 저장되며 Firmware 임.

모든 시스템을 초기화하며 운영 체제 커널을 로드하고 실행을 시작함.

 

-Computer System Organization 

 

;메모리 주기를 놓고 CPU 및 장치의 동시 실행CPU  device controller 는 common bus를 통해 공유메모리에 접근함 ( 윗 그림에서 선이 Bus 임 ).

 

1. CPU & I/O device 는 동시에 실행됨 . 

2. 각 device controller는 특정 기능을 담당함.
3. 각 device controller는 local  buffer가 존재함. [ 당연한듯...]
4. CPU는 main memory 2 local buffer로 데이터를 이동.
5. I/O는 device 2 controller buffer로 데이터를 이동/
6. device controller는 인터럽트를 발생시켜 CPU가 작업을 완료했음을 알림.

 

Interrupt

Interrupt Timeline

Common Functions of Interrupts

- 인터럽트는 모든 서비스 루틴의 address를 가진 interrupt vector를 통해 인터럽트 서비스 루틴에 제어를 전달.

- 인터럽트 아키텍처는 인터럽트된 명령어의 주소를 저장해야함.

- 트랩 또는 예외는 오류 또는 사용자 요청으로 인해 발생하는 소프트웨어 생성 인터럽트임.

- OS는 인터럽트를 구동함.

 

Handling

- 운영 체제는 레지스터와 프로그램 카운터를 저장하여 CPU의 상태를 보존.

- 발생한 인터럽트 유형을 결정.
 1. polling
 2. vectored interrupt system

- 별도의 코드 세그먼트는 각 유형의 인터럽트에 대해 어떤 조치를 취해야 하는지 결정.

 

I/O Structure

- I/O 시작 후, I/O 완료 시 사용자 프로그램으로 Control return.
   1. 대기 명령은 다음 인터럽트까지 CPU는 Idles 상태.
   2. 대기 루프 ( 메모리 액세스에 대한 경합)
   3. 한 번에 최대 한개의 I/O 요청시 동시에 I/O 처리를 하지 않음.
- I/O 시작 후, I/O 완료를 기다리지 않고 사용자 프로그램으로 Control return.
   1. System call – 사용자가 I/O 완료를 기다릴 수 있도록 OS에 요청
   2. Device-State-Table - I/O 장치에 대한 유형, device address 및 상태를 나타내는 항목.
   3. OS는 장치 상태를 결정하고 인터럽트를 포함하도록 테이블 항목을 수정하기 위해 I/O Device table에 index를 생성.

 

 

Storage-

Storage - device Hierarchy 

Storage Structure

- Main memory

 : CPU가 직접 접근할수 있는 대용량 저장공간. 

    1. Random access 

    ** C언어의 예를들자면 변수, 함수, 배열등 선언 혹은 메모리 동적할당후 해당 메모리 주솟값을 찍어보면 임의의 주솟값이 찍히는것과 관련이있나 싶다.

    2. Typically volatile / 휘발성이 강해. 즉 프로세스를 종료하면 메모리 날라갈껄 ...? (맞아 ? ) / 

 

- Secondart storage

 : 비휘발성 메모리 ..!!!

- Hard disks

- Solid-state disks

  하드디스크보다 빨라, 비휘발성이야, ! SSD > HD  ㅇㅈ ? ㅇㅇ 

 

Storage Hierarchy

 저장시스템은 속도, 비용, 휘발성으로구성됨 ( 이건 디지털공학 및 컴퓨터구조 정리할때 다시 말함. )

  1. Cashing

   :  위에 언급한 SSD, HD ,Main memory등 저장시스템보다 빠르고 정보를 복사함. 

  2. Device Driver 

    controller와 커널사이에 유일한 인터페이스를 제공해줘. 그리고 I/O를 관리함.

 

Caching

일시적으로 저장소 보다 빠르게 복사하여 정보를 사용함 .

만약 케시에서 직접 정보를 사용해? (빠름 )

 

Direct Memory Access Structure

How a Modern Computer Works

메모리에 가까운 속도로 정보를 전송할 수 있는 고속 I/O 장치에 사용
장치 컨트롤러는 CPU 개입 없이 버퍼 저장소에서 주 메모리로 직접 데이터 블록을 전송
바이트당 하나의 인터럽트가 아니라 블록당 하나의 인터럽트만 생성

 

-Computer-System Architecture

Single Processor

- 대부분의 시스템은 단일한 일반 목적 프로세스를 사용함 하고 특별한 목적의 프로세스를 가지고는 있음.

Multi Processor

-사용 및 중요성이 증가하는 다중 프로세서 시스템은 parallel , tightly-coupled system으로 알려져있음 .

     1. 장점 

         처리량 증가

         경제성 

         안정성 향상 
     2. 유형

        1. Asymmetric Multiprocessing - 각 프로세서에 특정 장업이 할당되는 프로세스

        2. Symmetric Multiprocessing - 각 프로세서가 모든 작업을 수행

symmetric Multiprocessing Achitecture

A Dual-Core Design

모든 칩을 포함하는 시스템 , 여러 개의 개별 시스템을 포함

Dual -Core Design

Clustered System

 

Clustered System

멀티 프로세서와 유사하지만 멀티프로세서와 함계 작동하는 다중시스템의 일종.

- 보통 SAN ( Storage Area Netowrk ) 를 통해 저장소 공유. 

- 고가용성 서비스 제공

      1. Asymmetric Clustering : hot-standby 모드에 하나의 머신. 

      2. Symmetric Clustering  : 서로 모니터링 하는 application을 실행하는 다중 노드로 운용

 

- 몇몇 cluster는 HPC(High-performance Computing )용임 

      1. app은 병렬화를 사용하도록 구성되어야함 . 

       2. 몇몇 클러스터는 DLM(Distributed lock manager )를 데이터 충돌을 피하기 위해 가지고 있어야함.

 

Operating System Structure

Memory Layout for Multiprogrammed System

 Multi Programming ( Batch System ) - 효율성 추구 

        1. CPU & I / O 장치를 항상 사용중인 상태로 유지할수 없음 ( 사용자 관점 ) 

        2. 멀티프로그래밍은  코드 및 데이터 작업을 구성하며 CPU가 항상 실행할 작업이 존재함.

        3. 시스템에 있는 전체 업무의 하위 집합이 메모리에 저장됨.

        4. 하나의 작업이 선택되며 예약을 통해 실행됨.

        5. 대기상태의 경우 OS는 다른 JOB으로 작업을 전환.

 TimeSharing ( Multitasking ) - CPU의 빈번한 작업 전환에 대하여 사용자가 실행중인 프로그램과 상호작용 하며 대화형 컴퓨팅을 생성하는 작업의 논리적 확장.   

        1. 응답시간 1초 미만.

        2. 프로세스에서 실행되는 프로그램이 하나이상 메모리에 존재함 

        3. 여러 작업을 동시에 실행할 준비가 된 경우 CPU 스케쥴링.

        4. 프로세스가 메모리에 맞지 않으면 스와핑을하며 프로세스를 안팎으로 이동하여 실행함

        5. 가상 메모리는 메모리에 완전히 저장되지 않은 프로세스의 실행을 허용.

 

 Interrupt Driven - 

       - HW -  장치중 하나에 의해 하드웨어 인터럽트

       - SW -   예외처리 또는 트랩 

               - 소프트웨어 에러 ( 0으로 나누기 등 )

               - 운영체제의 서비스 요청

               - 무한루프 (프로세스 문제) , 프로세스가 서로 한개의 작동 시스템에 대하여 수정하는경우. (데드락?) 

 Dual Mode - 운영체제는 자체 또는 기타 시스템 요소를 보호하는 기능 .

      - User mode / Kernel mode 

      - Mode bit - 하드웨어에의해 제공됨 

                     - 시스템이 User 인지 kernel인지 구별하는 기능/ 

                     - 커널 모드에서만 실행 가능한 지정된 일부 명령어 기능

                     - System call은 모드를 커널모드로 변경후  사용자 재설정 후 복구. 

                     - 많은 CPU가 다중 모드 작업을 지원중

 

 Virtual Machine manager (VMM)  - 가성 머신 관리자 모드 

 

User 2 Kernel Mode 전환

Transition from User to Kernel Mode

무한루프 방지 타이머 / 프로세스 자원 호깅 

 - 타이머는 일정 시간이후 컴퓨터가 중단되도록 설정됨 . 

 - 실제 시계 ( 아마 OS system time 등 말하는것같음 )에 의해 감소된 카운터 유지 . 

 

 OS 설정 카운터 ( 권한 명령 ) 

 - 아운터 0이 인터럽트를 생성시 - 할당된 시간을 초과한 프로그램을 다시 제어하거나 종료하기 위한 프로세스를 스케쥴링 하기 전에 설정함 . 


Process Management

- Process : 프로세스는 실행중인 프로그램. ( 시스템 내의 작업 단위 )

              . 작업을 수행하기 위해 리소스가 필요함 ( CPU , MEM , I/O , FILE , INIT DATA  .ETC )

              . 프로세스 종료시 재사용 가능한 리소스를 회수해야함 . 

- Program : passive entity ( 수동 ) , / Process - active entity . (능동 )

 

- Single Process  / Multi Process 

             Single Process 

                 - 실행할 다음 명령어의 위치를 지정하는 하나의 프로그램 카운터가 존재함 .

                 - 완료될 떄까지 한 번에 하나씩 명령을 순차적으로 실행함. 

             Multi Thread Process 

                 - 스레드당 하나의 프로그램 카운터가 존재

                 - 시스템에는 하나 이상의 CPU에서 동시에 실행되는 많은 프로세스, 일부 사용자, 일부 운영체제가 있음.

                 -  Concurrency by multiplexing the CPUs among the processes / threads

 

- OS- process 역할 

             사용자 및 시스템 프로세스 생성 삭제 

             프로세스 일시 중지 및 재기동 

             프로세스 동기화 메커니즘 

             프로세스 통신 메커니즘 

             데드락 핸들링 메커니즘 

Memory Management

 - 프로그램 실행하기 위해 프로그램에 필요한 (데이터 와)명령어가 메모리에 있어야함. 

 - 메모리 관리는 메모리에 무엇이 언제 있는지 CPU 활용도 및 사용자에 대한 컴퓨터 응답 최적화를 통해 관리함.

 -메모리 운영 역할 

   사용중인 메모리 및 사용자 추적 

    프로세스 및 데이터 결정 

   메모리 공간 할당및 해제

Storage Management

 운영체제는 정보 저장소에 대한 균일하고 논리적인 모니터링? 을 제공함 ?

   1. 파일 - 추상적이고 물리적 특성에서 논리적 저장유닛

   2. 각 medium은 장치에의해 제어됨 장치(디스크 , 드라이브 등등 ) 

   3. 특성으로 속도, 용량 , 데이터 전송 속도 , 액세스 방법 등이 있음 . 

 

   파일 시스템 관리 

   디렉토리로 구성된 파일을 어떻게 액세스할 수 있는지 결정하기 위해 대부분의 시스템에서 액세스 제어.

   파일 디렉토리 생성 삭제

   비휘발성 저장소에 파일 백업

   보조 저장소에 파일 매핑 

 

Mass-Storage Management

  오랜기간 보관하는 데이터를 저장하는데 사용

  속도는 디스크 하위 시스템 및 알고리즘이 결정함 

 

  - 여유공간 관리 

  - 저장소 할당

  - 디스크 스케쥴링

 등 

 

Performance of storage 

 

Migration of data "A" from Disk to Register 

 - 멀티태스킹 환경에서 저장소 계층 구조의 어디에 데이터가 저장되어 있어도 가장 최근의 값을 사용하도록 주의.

 

 - 다중 프로세서 환경은 모든 CPU가 캐시에서 가장 최근 값을 갖도록 하드웨어에서 캐시 일관성을 제공

 


Kernel Data Structure

& Binary 탐색 트리 . ( left <= right ) 

 O(n),  

 Balanced Binary search tree O(log n)

 

Hash Function

 

반응형
LIST