컴퓨터 시스템 구조
컴퓨터 시스템은 네 가지 구성 요소로 나눌 수 있습니다.
- 하드웨어 – 기본 컴퓨팅 자원 제공
- CPU, 메모리, I / O 장치
- 운영 체제
- 다양한 애플리케이션 및 사용자 간의 하드웨어 사용을 제어하고 조정합니다.
- 응용 프로그램 – 사용자의 컴퓨팅 문제를 해결하기 위해 시스템 리소스를 사용하는 방법을 정의합니다.
- 워드 프로세서, 컴파일러, 웹 브라우저, 데이터베이스 시스템, 비디오 게임
- 사용자
- 사람, 기계, 기타 컴퓨터
운영 체제의 기능
관점에 따라 다름
- 사용자는 편리함, 사용 용이성 및 우수한 성능을 원합니다.
- 리소스 활용에 신경 쓰지 않음
- 그러나 메인 프레임이나 미니 컴퓨터와 같은 공유 컴퓨터는 모든 사용자를 만족시켜야합니다.
- 운영 체제는 HW를 효율적으로 사용하고 사용자 프로그램의 실행을 관리하는 자원 할당자 및 제어 프로그램입니다.
- 워크 스테이션과 같은 전용 시스템 사용자는 전용 리소스를 가지고 있지만 서버의 공유 리소스를 자주 사용합니다.
- 스마트 폰 및 태블릿과 같은 모바일 장치는 리소스가 부족하여 유용성과 배터리 수명에 최적화되어 있습니다.
- 터치 스크린, 음성 인식과 같은 모바일 사용자 인터페이스
- • 장치 및 자동차에 내장 된 컴퓨터와 같이 일부 컴퓨터에는 사용자 인터페이스가 거의 또는 전혀 없습니다.
- 주로 사용자 개입없이 실행
운영 체제 정의
- Term OS는 다양한 역할을 다룹니다.
- 무수히 많은 디자인과 OS 사용으로 인해
- 선박, 우주선, 게임기, TV 및 산업 제어 시스템을 통해 toasters에 표시
- 군용 특수 컴퓨터가 일반화되어 자원 관리 및 프로그램 제어가 필요
- 보편적으로 허용되는 정의 없음
- "운영 체제를 주문할 때 공급 업체에서 제공하는 모든 것"은 대략적인 값입니다.
- 그러나 크게 다릅니다
- “컴퓨터에서 항상 실행되는 하나의 프로그램”은 운영 체제의 일부인 커널입니다.
- 다른 모든 것은
- 시스템 프로그램 (운영 체제와 함께 제공되지만 커널의 일부가 아님) 또는
- 응용 프로그램, 운영 체제와 관련되지 않은 모든 프로그램
- 오늘날의 범용 및 모바일 컴퓨팅 용 OS에는 데이터베이스, 멀티미디어, 그래픽과 같은 추가 서비스를 애플리케이션 개발자에게 제공하는 소프트웨어 프레임 워크 세트인 미들웨어도 포함됩니다.
컴퓨터 시스템 구성
- 컴퓨터 시스템 작동
- 하나 이상의 CPU, 장치 컨트롤러는 공유 메모리에 대한 액세스를 제공하는 공통 버스를 통해 연결됩니다.
- 메모리 주기를 두고 경쟁하는 CPU 및 장치의 동시 실행
컴퓨터 시스템 작동
- I / O 장치와 CPU가 동시에 실행 가능
- 각 장치 컨트롤러는 특정 장치 유형을 담당합니다.
- 각 장치 컨트롤러에는 로컬 버퍼가 있습니다.
- 각 장치 컨트롤러 유형에는이를 관리하기위한 운영 체제 장치 드라이버가 있습니다.
- 장치 드라이버 : 컨트롤러와 커널 간의 균일 한 인터페이스 제공
- CPU는 주 메모리와 로컬 버퍼간에 데이터를 이동합니다.
- I / O는 장치에서 컨트롤러의 로컬 버퍼로
- 장치 컨트롤러는 CPU에 인터럽트를 발생시켜 작동이 완료되었음을 알립니다.
인터럽트의 일반적인 기능
- 인터럽트는 모든 서비스 루틴의 주소를 포함하는 인터럽트 벡터를 통해 일반적으로 인터럽트 서비스 루틴으로 제어를 전송합니다.
- 인터럽트 아키텍처는 인터럽트 된 명령어의 주소를 저장해야합니다.
- 트랩 또는 예외는 오류 또는 사용자 요청으로 인해 발생하는 소프트웨어 생성 인터럽트입니다.
- 운영 체제가 인터럽트 구동
Interrupt Handling
- 운영 체제는 레지스터와 프로그램 카운터를 저장하여 CPU 상태를 보존합니다.
- 발생한 인터럽트 유형을 결정합니다.
- polling
- vectored 인터럽트 시스템
- 별도의 코드 세그먼트는 각 인터럽트 유형에 대해 수행해야하는 작업을 결정합니다.
Interrupt-drive I/O Cycle
Two I/O Structures
- I/O 시작 후, I/O 완료시에만 사용자 프로그램으로 제어 복귀
- 대기 명령은 다음 인터럽트까지 CPU를 idles 상태로 만듭니다.
- Wait loop(메모리 액세스에 대한 경합)
- 한 번에 최대 하나의 I/O 요청이 처리되지 않고 동시 I/O 처리 없음
- I/O 시작 후, I/O 완료를 기다리지 않고 제어가 사용자 프로그램으로 복귀합니다.
- System call – 사용자가 I / O 완료를 기다릴 수 있도록 OS에 요청
- Device-status table에는 유형, 주소 및 상태를 나타내는 각 I/O 장치에 대한 항목이 포함됩니다.
- OS는 I/O 장치 테이블에 index를 생성하여 장치 상태를 결정하고 interrupt를 포함하도록 테이블 항목을 수정합니다.
Storage Structure
- 메인 메모리 – CPU가 직접 액세스 할 수있는 대용량 저장 매체
- 랜덤 액세스
- 일반적으로 휘발성
- 일반적으로 DRAM (Dynamic Random-Access Memory) 형태
- Secondary storage – 큰 비 휘발성 스토리지 용량을 제공하는 메인 메모리 확장
- Hard Disk Drives (HDD) – magnetic recording 물질로 덮인 단단한 금속 또는 유리 platters
- disk 표면은 논리적으로 track으로 분할되고 sectors로 세분됩니다.
- disk controller는 장치와 컴퓨터 간의 논리적 상호 작용을 결정합니다.
- Non-volatile memory (NVM) 장치 – HDD보다 빠름
- 다양한 기술
- 용량과 성능이 증가하고 가격이 하락함에 따라 인기가 높아짐
- Hard Disk Drives (HDD) – magnetic recording 물질로 덮인 단단한 금속 또는 유리 platters
Storage Definitions and Notation Review
- bit : 컴퓨터 저장의 기본 단위
- 0과 1의 두 값 중 하나를 포함 할 수 있습니다.
- byte : 8 bits, 가장 작은 편리한 stroge chunk
- 예) bit를 이동하라는 명령은 없지만 byte를 이동하라는 명령.
- Word : 주어진 컴퓨터 아키텍처의 기본 데이터 단위
- 1 byte 이상 : 64 bits 아키텍처 컴퓨터에는 64 bits (8 bytes) word가 있습니다.
- 한 번에 한 byte가 아닌 고유 한 word 크기의 많은 작업.
- 대부분의 컴퓨터 throughput과 함께 컴퓨터 stroge는 일반적으로 byte 및 bytes 모음 단위로 측정 및 조작됩니다.
- milli-3 micro-6 nano -9
- kilo 바이트 (KB) : 1,024 bytes
- mega 바이트 (MB) : 1,024^2 bytes
- giga 바이트 (GB) : 1,024^3 bytes
- tera 바이트 (TB) : 1,024^4 bytes
- peta 바이트 (PB) : 1,024^5 bytes
- 종종이 숫자를 반올림하고 mega byte는 1 million byte이고 1 giga byte는 10 billion bytes라고 말합니다.
- 네트워킹 측정은이 일반 규칙의 예외입니다. (네트워크가 한 번에 조금씩 데이터를 이동하기 때문에) bit 단위로 제공됩니다.
Storage Hierarchy
- 계층 구조로 구성된 스토리지 시스템
- 속도 speed, 비용 cost, 변동성 volatility
- Caching – 정보를 더 빠른 storage system으로 복사합니다. main memory는 secondary stroage의 cache로 볼 수 있다.
- Start up
- power-up 또는 reboot시 bootstrap program이 load 됨
- 일반적으로 ROM 또는 EPROM에 저장 (일반적으로 firmware라고 함)
- 시스템의 모든 측면을 초기화합니다.
- 운영 체제 kernel을 load하고 실행을 시작합니다.
- power-up 또는 reboot시 bootstrap program이 load 됨
- Working
Direct Memory Access Structure
- Memory 속도에 가까운 정보를 전송할 수있는 고속 I/O 장치에 사용
- 장치 controller는 CPU 개입없이 data block을 buffer storage에서 Main memory로 직접 전송합니다.
- byte 당 하나의 interrupt가 아니라 block 당 하나의 interrupt만 생성된다.
Computer-System Architecutre
- 대부분의 시스템은 단일 general-purpose의 processor를 사용합니다.
- 대부분의 시스템에는 special-purpose의 processor도 있습니다.
- Multiprocessors systems 사용 및 중요성 증가
- 병렬 시스템, 단단히 결합 된 시스템이라고도 함
- 장점은 다음과 같습니다.
- throughput 증가
- 규모의 경제
- 신뢰성 향상 – 정상적인 성능 저하 graceful degradation 또는 내결함성 fault tolerance
성능을 높이는 것은 clock을 높이는 것이다. 속도 한계 내에서 최대치를 끌어올리는 것.--> 다중 처리
- 두 가지 유형 :
- 비대칭 Asymmetric Multiprocessing – 각 processor에 특정 작업이 할당됩니다.
- 대칭 Symmetric Multiprocessing – 각 processor가 모든 작업을 수행합니다.
NUMA- 네트워크로 연결되어 있어서 속도가 다 똑같지 않다.
Clustered Systems
다중 프로세서 시스템과 유사하지만 함께 작동하는 여러 시스템
- 일반적으로 SAN (Storage Area Network)을 통해 storage 공유
- failures에서 살아남아 high-availability service 제공
- Asymmetirc clustering에는 상시 대기 모드 hot-standby mode의 시스템이 하나 있습니다.
- Symmetirc clustering에는 애플리케이션을 실행하는 여러 노드가 있으며 서로 모니터링합니다.
- 일부 clusters는 high-performance computing (HPC)용입니다.
- 병렬화를 사용하려면 응용 프로그램을 작성해야합니다.
- 일부는 작업 충돌을 피하기 위해 분산 잠금 관리자 distributed lock manger (DLM)를 사용합니다.
컴퓨터들 끼리 연결
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
- 시스템이 사용자 코드 또는 커널 코드를 실행할 때 구별하는 기능을 제공합니다.
- 권한있는 것으로 지정된 일부 명령어는 커널 모드에서만 실행 가능합니다.
- 시스템 호출은 모드를 커널로 변경하고 호출에서 복귀하면 사용자에게 재설정됩니다.
- 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)
- 네트워크는 통신 경로이며 TCP / IP가 가장 일반적입니다.
- 네트워크 운영 체제는 네트워크를 통해 시스템간에 기능을 제공합니다.
- 통신 체계는 시스템이 메시지를 교환하도록 허용
- 단일 시스템의 환상
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을 사용할 수 있습니다.
- 탐색을 위해 게스트 운영 체제를 실행하는 데 사용
'운영체제' 카테고리의 다른 글
운영체제 ch5. (0) | 2020.10.13 |
---|---|
운영체제 Week 1-3 : (0) | 2020.09.28 |
운영체제 Week 1-2 : (0) | 2020.09.27 |
운영체제 Week 1-1 : OS concept & Computer system organization (0) | 2020.09.27 |