Hi there!

I am a student studying computer science.

운영체제

운영체제 Week 1-3 :

만능성구 2020. 9. 28. 01:53
728x90

PC Motherboar

  • processor
  • DRAM
  • PCle bus
  • HDMI, DVI, RGB
  • USB 2.0 3.0
  • PS/2
  • MIC, SPK
  • RJ45

Operating-System Operations

  • Bootstrap program – 시스템 초기화를위한 간단한 코드
    • kernel load #memory에 항상 상주하는 os (memory, process 관리)
  • Kernel loads
  • system daemons (kernel 외부에서 제공되는 서비스)을 시작
  • Kernel interrupt 구동 (하드웨어 및 소프트웨어)
    • 장치 중 하나에 의한 H/W interrupt
    • S/W interrupt (exception 또는 trap) :
      • Software error (예 : 0으로 나누기)
      • 운영 체제 서비스 요청 – system clal
      • 기타 processor 문제에는 무한 루프, 서로 수정하는 프로세스 또는 operating system

Multiprogramminig and Multitasking

  • Multiprogramming (Batch system) 효율성을 위해 필요
    • 단일 사용자는 CPU 및 I/O 장치를 항상 바쁘게 유지할 수 없습니다.
    • Multiprogramming은 작업(code 및 data)을 구성하므로 CPU는 항상 하나를 실행할 수 있습니다.
    • System에있는 a subset of total jobs이 메모리에 보관됩니다.
    • 하나의 작업을 선택하고 작업 scheduling을 통해 실행
    • 대기해야하는 경우 (예 : I/O), OS는 다른 작업으로 전환합니다.
  • Timesharing (mulittasking)는 CPU가 작업을 너무 자주 전환하여 사용자가 각 작업이 실행되는 동안 상호 작용할 수 있도록하는 논리적 확장으로 대화형 interactive computing을 생성합니다.
    • Response time은 1 초 미만이어야합니다.
    • 각 사용자는 메모리에서 실행되는 적어도 하나의 프로그램을 가지고 → process
    • 여러 작업을 동시에 실행할 준비가 된 경우 → CPU scheduling 
    • 프로세스가 메모리에 맞지 않는 경우, swapping은 프로세스를 안팎으로 이동하여 실행합니다.
    • Virtual memory는 완전히 메모리에 있지 않은 프로세스 실행을 허용합니다.

context : 내가 사용하고 있는 프로그램의 정보 pc, file, 장치들의 정보

context switching : 내가 쓰다 다른 사람이 쓰는거, process 변경

 Memory Layout for Multiprogrammed System

Dual-mode and Multimode Operation

  • Dual-mode 작동으로 OS가 자체 및 기타 시스템 구성 요소를 보호할 수 있습니다.
    • User mode 및 Kernel mode – hardware에서 제공하는 Mode bit
      • 시스템이 사용자 코드 또는 커널 코드를 실행할 때 구별하는 기능을 제공합니다.
      • 권한있는 것으로 지정된 일부 명령어는 커널 모드에서만 실행 가능합니다.
      • 시스템 호출은 모드를 커널로 변경하고 호출에서 복귀하면 사용자에게 재설정됩니다.
  • 점점 더 많은 CPU가 다중 모드 작업을 지원합니다.
    • 즉, 게스트 VM 용 VMM (Virtual Machine Manager) 모드

system call : os가 support하고 있는 함수들/ cpu도 mode가 있다

Transition from User to Kernel Mode 사용자에서 커널 모드로 전환

  • 무한 루프 / process hogging resource을 방지하는 타이머
    • 일정 시간이 지나면 컴퓨터가 중단되도록 타이머가 설정되어 있습니다.
    • physical clock에 의해 감소되는 counter 유지
    • 운영 체제 counter 설정 (권한 지시 instruction)
    • counter 0이 interrupt를 생성 할 때
    • 제어권을 되찾거나 할당된 시간을 초과하는 프로그램을 종료하기 위해, process scheduling하기 전에 설정

위아래 전화할 때 context switching 이때 시간 좀 걸린다.

Process Management

  • process: 실행중인 프로그램
    • 시스템 내의 작업 단위
    • program은 수동적 passive entity이고 process는 능동적 active entity입니다. # 하드디스크에, 클릭해서 동작중
  • process는 작업을 수행하기 위해 resource가 필요합니다.
    • CPU, 메모리, I/O, files
    • initialization data
  • process 종료에는 재사용 가능한 자원의 회수 reclaim가 필요합니다.
  • Single threaded process에는 실행할 다음 명령의 위치를 지정하는 하나의 program counter가 있습니다.
    • process는 완료 될 때까지 한 번에 하나씩 명령을 순차적으로 실행합니다.
  • multi thread process에는 thread 당 하나의 program counter가 있습니다.
  • 일반적으로 시스템에는 하나 이상의 CPU에서 동시에 실행되는 여러 process, some user, some os가 있습니다.
    • process / thread간에 CPU를 다중화하여 동시성 Concurrency # 동시에 동작하는거, time sharing 

Process Management

  • 운영 체제는 process 관리와 관련하여 다음 활동을 담당합니다.
    • user 및 system process 생성 및 삭제
    • process 일시 중지 및 재개 suspending and resuming
    • process 동기화sysnchronizaion를 위한 메커니즘 제공
    • process commutication을 위한 메커니즘 제공
    • 교착 상태 처리deadlock handling를 위한 메커니즘 제공

Memory Management

  • 프로그램을 실행하려면 명령어의 전부 (또는 일부)가 memory에 있어야합니다.
  • 프로그램에 필요한 모든 데이터 (또는 일부)가 memory에 있어야합니다.
  • memory 관리는 memory에 있는 시기를 결정
    • 사용자에 대한 CPU 사용률 및 컴퓨터 응답 최적화
  • 메모리 관리 활동
    • 현재 사용중인 메모리 부분과 누가 사용하는지 추적
    • 메모리 안팎으로 이동할 프로세스 (또는 그 일부) 및 데이터 결정
    • 필요에 따라 메모리 공간 할당 및 할당 해제

File-system Management

  • OS는 informatin stroage에 대한 uniform, logical view를 제공합니다.
    • physical 속성을 logical stroage unit으로 추상화 - file
    • 각 매체는 장치 (예 : disk drive, tape drive)에 의해 제어됩니다.
      • access speed, capacity, data-transfer rate, access method(순차적 또는 무작위)을 포함하는 다양한 속성
  • file system management
    • 일반적으로 directory로 구성된 파일
    • 누가 무엇에 access 할 수 있는지 결정하기 위해 대부분의 system에서 access 제어
    • OS 활동에는 다음이 포함됩니다.
      • file 및 directory생성 및 삭제
      • file및 directory 조작하는 기본 요소
      • secodary stroage에 file mapping
      • 안정적인 (비휘발성non-volatile) stroage media에 file 백업

Mass-Storage Management

  • 일반적으로 Main mermory 에 맞지 않는 data 또는 "장기간"보관해야하는 data를 저장하는 데 사용되는 disk
  • 적절한 관리가 가장 중요합니다.
  • 컴퓨터 작동의 전체 속도는 디스크 subsystem과 algorithm에 달려 있습니다.
  • OS 활동
    • 장착 및 분리 Mounting and Unmonungtin
    • 여유 공간 관리 Free-space management
    • 스토리지 할당 Storage allocation
    • 디스크 스케줄링 Disk scheduling
    • 파티셔닝 Partitioning
    • 보호 Protection
  • 일부 Stroage는 빠를 필요가 없습니다.
    • 3차 Storage에는 광학 스토리지optical storage, 자기 테이프magnetic tape 포함
    • 여전히 관리되어야 함 – OS 또는 애플리케이션에 의해 

Caching pass

  • 컴퓨터의 여러 수준에서 수행되는 중요한 원칙 (H/W, OS, S/W)
  • 사용중인 정보가 느린 저장소에서 빠른 저장소로 일시적으로 복사됨
  • 정보가 있는지 확인하기 위해 먼저 더 빠른 스토리지 (cache) 확인
    • 그렇다면, cache에서 직접 사용되는 정보 (빠름)
    • 그렇지 않은 경우, 데이터가 캐시에 복사되어 사용됩니다.
  • 캐시되는 storage보다 작은 cache
    • cahce 관리 중요한 설계 문제
    • cahce 크기 및 교체 정책

Characteristics of Various Types of Storage  다양한 저장 유형의 특성

• stroage  계층 수준 간의 이동은 명시적이거나 암시적일 수 있습니다.

Migration of data “A” from Disk to Register pass

  • Multitasking 환경은 storage계층 구조의 어디에 저장되어 있든 상관없이 최근 값을 사용하도록 주의해야합니다.
  • Mulitprocessor 환경은 모든 CPU가 cache에서 가장 최근 값을 갖도록 하드웨어에서 cache coherency일관성을 제공해야합니다.
  • 더욱 복잡한 분산 환경 상황
    • 데이터의 여러 사본이 존재할 수 있습니다.
    • 19 장에서 다루는 다양한 솔루션

 I/O Subsystem

  • OS의 한 가지 목적은 사용자로부터 하드웨어 장치의 특성peculiariteis을 숨기는 것입니다.
  • 담당 I / O subsystem
    • buffering (데이터가 전송되는 동안 일시적으로 데이터 저장)
    • caching (성능을 위해 데이터의 일부를 더 빠른 저장소에 저장)
    • spooling (한 작업의 출력과 다른 작업의 입력이 겹침)을 포함한 I/O의 메모리 관리
    • 일반 장치 드라이버 interface
    • 특정 하드웨어 장치용 drivers

Protection and Security

  • Protection – OS에서 정의한 resource에 대한 process 또는 user access를 제어하기 위한 모든 메커니즘
  • Security – 내부 및 외부 공격에 대한 시스템 방어defense
    • 서비스 거부against, 웜worms, 바이러스viruses, 신원 도용identity theft, 서비스 도용service theft을 포함한 광범위한 범위
  • 시스템은 일반적으로 먼저 사용자를 구별하여 누가 무엇을 할 수 있는지 결정합니다.
    • 사용자 identities (사용자 ID, 보안 ID)에는 사용자 당 하나씩 이름 및 관련 번호가 포함됩니다.
    • 사용자 ID는 access 제어를 결정하기 위해 해당 사용자의 모든 file, process와 연결됩니다.
    • 그룹 identifier (그룹 ID)를 사용하면 사용자 집합을 정의하고 관리 할 수 있으며 각 프로세스, 파일과도 연결할 수 있습니다.
    • 권한 escalation을 통해 사용자는 더 많은 권한을 가진 유효 ID로 변경할 수 있습니다.

 Virtualization

  • 운영 체제가 다른 OS 내에서 응용 프로그램을 실행할 수 있습니다.
    • 방대하고 성장하는 산업
  • Emulation - 소스 CPU 유형이 대상 유형과 다를 때 사용됨
    • 예) PowerPC에서 Intel x86으로 Apple의 CPU migration
    • 일반적으로 가장 느린 방법
    • 컴퓨터 언어가 네이티브 코드로 컴파일되지 않은 경우 – Interpretation
  • Virtualization – 기본적으로 컴파일 된 게스트 OS를 실행하는 CPU 용으로 기본적으로 컴파일 된 OS
    • WinXP 게스트를 실행하는 VMware, 각각 실행중인 애플리케이션을 모두 기본 WinXP 호스트 OS에서 고려하십시오.
    • VMM (virtual machine Manager)은 가상화 서비스를 제공합니다.
  • 사용 사례에는 탐색 또는 호환성을 위해 여러 OS를 실행하는 노트북 및 데스크톱이 포함됩니다.
    • Mac OS X 호스트, Windows를 게스트로 실행하는 Apple 노트북
    • 여러 시스템없이 여러 OS 용 앱 개발
    • 여러 시스템없이 QA 테스트 애플리케이션
    • 데이터 센터 내에서 컴퓨팅 환경 실행 및 관리
  • VMM은 기본적으로 실행될 수 있으며 이 경우 호스트이기도합니다.
    • 범용 호스트가 없습니다 (VMware ESX 및 Citrix XenServer).

Distributed Systems pass생략

분산 컴퓨팅

  • 서로 네트워크로 연결된 별도의 이기종 시스템 모음
    • 네트워크는 통신 경로이며 TCP / IP가 가장 일반적입니다.
      • LAN (Local Area Network)
      • WAN (Wide Area Network)
      • MAN (Metropolitan Area Network)
      • PAN (Personal Area Network)
  • 네트워크 운영 체제는 네트워크를 통해 시스템간에 기능을 제공합니다.
    • 통신 체계는 시스템이 메시지를 교환하도록 허용
    • 단일 시스템의 환상

Kernel Data Structures

• 표준 프로그래밍 데이터 구조와 유사 함

  • 이진 검색 트리
    • 왼쪽 <= 오른쪽
    • 검색 성능은 O (n)입니다.
    • 균형 이진 검색 트리는 O (lg n)입니다.
  • 해시 함수는 Hash map을 만들 수 있습니다.

  • Bitmap – n 개 항목의 상태를 나타내는 n 개의 이진수 문자열
  • <linux / list.h>, <linux / kfifo.h>, <linux / rbtree.h> 파일에 정의 된 Linux 데이터 구조

Computing Environments - Traditional 

  • 독립형 범용 기계Stand-alone general-purpose machines
  • 그러나 대부분의 시스템이 다른 시스템 (예 : 인터넷)과 상호 연결되어 흐릿함
  • Portals은 내부 시스템에 대한 웹 access를 제공합니다.
  • Network computers (thin clients)는 웹 터미널과 같습니다.
  • 모바일 컴퓨터는 wireless networks를 통해 상호 연결됩니다.
  • 네트워킹이 유비쿼터스화됨 – 심지어 가정용 시스템도 firewalls을 사용하여 인터넷 공격으로부터 가정용 컴퓨터를 보호합니다.

Computing Environments - Mobile

  • 스마트 폰, 태블릿 등
  • 이들과 "기존의"노트북의 기능적 차이점은 무엇입니까?
  • 추가 기능 – 더 많은 OS 기능 (GPS, 자이로 스코프)
  • 증강 현실augmented reality과 같은 새로운 유형의 앱 허용
  • 연결을 위해 IEEE 802.11 무선 또는 셀룰러 데이터 네트워크 사용
  • 리더는 Apple iOS 및 Google Android입니다.

Computing Environments – Client-Server

  • Client-Server Computing
    • 스마트 PC로 대체된supplanted 멍청한 단말기Dumb terminals
    • 이제 많은 시스템이 클라이언트에서 생성 된 요청에 응답하는 서버
      • Compute-server system은 서비스를 요청하기 위해 클라이언트에 인터페이스를 제공합니다 (예 : 데이터베이스).
      • File-server system은 클라이언트가 파일을 저장하고 검색 할 수있는 인터페이스를 제공합니다.

Computing Environments - Peer-to-Peer

  • 분산 시스템의 또 다른 모델
  • P2P는 클라이언트와 서버를 구분하지 않습니다.
    • 대신 모든 노드가 peer로 간주됩니다.
    • 각각이 client, server 또는 둘 다로 작동 할 수 있습니다.
    • 노드는 P2P 네트워크에 가입해야합니다.
      • 네트워크의 중앙 조회 서비스에 서비스를 등록합니다.
      • 서비스 요청을 broadcast하고 검색 프로토콜discovery protocol을 통해 서비스 요청에 응답
    • 예로는 Napster 및 Gnutella, Skype와 같은 VoIP (Voice over IP)가 있습니다.

Computing Environments – Cloud Computing

  • 네트워크를 통해 컴퓨팅, 스토리지, 심지어 앱을 서비스로 제공
  • 가상화를 기능의 기반으로 사용하기 때문에 가상화의 논리적 확장.
    • Amazon EC2에는 수천 개의 서버, 수백만 개의 가상 머신, 인터넷에서 사용할 수있는 페타 바이트의 스토리지가 있으며 사용량에 따라 요금을 지불합니다.
  • 다양한 유형
    • 공용 클라우드 – 인터넷을 통해 지불 할 의사가있는 모든 사람이 사용할 수
    • 사설 클라우드 – 회사 자체 사용을 위해 회사에서 실행
    • 하이브리드 클라우드 – 공용 및 사설 클라우드 구성 요소 모두 포함
    • SaaS (Software as a Service) – 인터넷을 통해 사용할 수있는 하나 이상의 애플리케이션 (예 : 워드 프로세서)
    • PaaS (Platform as a Service) – 인터넷을 통한 애플리케이션 사용을위한 소프트웨어 스택 (예 : 데이터베이스 서버)
    • IaaS (Infrastructure as a Service) – 인터넷을 통해 사용 가능한 서버 또는 스토리지 (즉, 백업용으로 사용 가능한 스토리지)
  • 기존 OS, VMM 및 클라우드 관리 도구로 구성된 클라우드 컴퓨팅 환경
    • 인터넷 연결에는 방화벽과 같은 보안이 필요합니다.
    • 로드 밸런서는 여러 애플리케이션에 트래픽을 분산


Computing Env. – Real-Time Embedded Systems

  • 가장 널리 사용되는 컴퓨터 형태의 실시간 임베디드 시스템
    • 다양한 특수 목적, 제한된 목적 OS, 실시간 OS
    • 확장 사용
  • 기타 많은 특수 컴퓨팅 환경
    • 일부는 OS가 있고 일부는 OS없이 작업을 수행합니다.
  • 실시간 OS에는 잘 정의 된 고정 시간 제약이 있습니다.
    • 처리는 제약 내에서 수행되어야합니다.
    • 제약 조건이 충족 된 경우에만 올바른 작동

 Free and Open-Source Operating Systems

  • 바이너리 폐쇄 소스 및 독점이 아닌 소스 코드 형식으로 제공되는 운영 체제
  • 복제 방지 및 DRM (디지털 권한 관리) 운동에 대한 대응
  • "카피 레프트"GNU Public License (GPL)를 보유한 Free Software Foundation (FSF)에서 시작
  • 예로는 GNU / Linux 및 BSD UNIX (Mac OS X의 핵심 포함) 등이 있습니다.
  • VMware Player (Windows에서 무료), Virtualbox (오픈 소스 및 여러 플랫폼에서 무료-http://www.virtualbox.com)와 같은 VMM을 사용할 수 있습니다.
    • 탐색을 위해 게스트 운영 체제를 실행하는 데 사용
728x90

'운영체제' 카테고리의 다른 글

운영체제 ch5.  (0) 2020.10.13
1장  (0) 2020.09.29
운영체제 Week 1-2 :  (0) 2020.09.27
운영체제 Week 1-1 : OS concept & Computer system organization  (0) 2020.09.27