🌞 운영체제의 유형
-> CPU가 연산하는 동안 입력장치의 데이터를 미리 주기억장치에 저장
-> CPU가 연산하는 동안 주기억장치의 데이터를 출력장치로 내보냄
데이터를 장치, 프로그램, 혹은 시스템에 의해 사용되거나 수행되게 하기 위해 임시로 보관하는 행위
-> 디스크를 버퍼로 사용
버퍼링은 주기억장치를 사용
-> 여러 작업의 데이터를 버퍼에 모아 둠
버퍼링은 한 작업의 (입출력) 데이터를 모아 두는 것을 주로 의미함
-> 여러 작업의 입출력과 계산을 동시 진행
버퍼링은 같은 작업의 (입)출력만 겹치게 함
두개 이상의 프로그램을 주기억장치에 적재하여 번갈아 가며 실행하는 컴퓨터 시스템
일괄 처리 시스템의 비효율성을 해결
I/O를 처리하는 중 CPU가 노는 상태 발생 이를 해결
프로세서 사용률 증가
운영체제가 복잡해짐
-> 여러 프로그램을 메모리에 적재 하려면, 복잡한 메모리 관리가 필요함
-> 여러 프로그램이 준비 상태라면, 하나를 선별하는 메커니즘이 필요함
둘 이상의 프로세서를 사용하는 단일 컴퓨터 시스템
여러 프로세서가 메모리, 주변장치, 시스템 버스, 클록 등을 공유한다.
신뢰성이 높다
-> 프로세서 하나가 고장 나도 다른 프로세서가 작업 계속
프로세서 간의 연결, 상호작용, 역할 분담 등이 필요하다.
다중 처리 시스템의 구성 방법
-> 대칭적 구성
-> 비대칭적(주종)적 구성
메모리에 여러 프로그램을 적재하므로 메모리 관리가 필요하다.
어떤 프로그램을 먼저 실행할지 결정하는 스케줄링 개념이 필요하다.
다중 프로그래밍 시스템의 목표 : 프로세서 사용률의 최대화
시분할 시스템의 목표 : 응답시간의 최소화
작업의 요청에 대한 결과를 얻기까지 시간 제약이 존재하는 시스템
고정된 시간 제약을 지키지 않으면 실패 취급
-> 입력 후 응답에 소요되는 시간을 반응(응답)시간이라 함
-> 반응시간이 온라인 처리에 비해 매우 짧음
제약의 엄격함에 따른 두 가지 유형
-> Hard
-> Soft
분산 처리 시스템을 하나의 운영체제가 관리하는 시스템
분산 처리 시스템을 하나의 컴퓨터로 보이게 하는 것이 목표이다.
-> 사용자는 각 자원의 위치를 몰라도 사용 가능
하나의 운영체제가 시스템 전체를 관리해야 하므로 구현이 어렵다.
처리능력, 저장용량, 연산속도, 신뢰성, 사용가능도 향상
시스템의 점진적 확장이 용이
중앙 집중형 시스템에 비해 보안성이 취약하다.
cf) 약결합 (loosely-coupled) : 메모리를 공유하고 있지 않은 경우
<-> tightly coupled
🌞 가상화
-> 기술 발달로 경제성이 높아지면서 성능, 안정성, 효율성 향상 등 강점으로 본격적 확산
-> 적용 대상에 따라 서버 가상화, 데스크톱 가상화, 스토리지 가상화, 네트워크 가상화, 소프트웨어 가상화로 구분
( 이 중 운영체제와 깊이 관련된 것은 서버 가상화 )
하이퍼바이저 : 호스트 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼
-> 호스트 기반 가상화 : 호스트 운영체제에서 가상 머신 구동
-> 베어메탈 기반 가상화 : 호스트 운영체제 설치 전 가상화 솔루션을 탑재
🌞 클라우드 컴퓨팅
인터넷을 통해 가상화된 컴퓨터 시스템을 요구하는 만큼 즉시 제공
(on-demand avilability)받는 기술
그리드 컴퓨팅의 분산 컴퓨팅 개념, 유틸리티 컴퓨팅의 과금 모델, 서버-클라이언트 모델을 적용
서비스 종류 : IaaS, Paas, SaaS
IaaS(Infrastructure as aService)
-> 서버, 스토리지, 네트워크 등의 자원을 제공
-> 아마존의 EC2와 S3가 예시이다.
PaaS(Platform as a Service)
-> 응용 프로그램의 구축, 테스트 및 설치가 가능한 통합개발 환경을 제공
-> 구글, 다음, 네이버에서 제공하는 Open API
SaaS(Software as a Service)
-> 특정 소프트웨어를 인터넷으로 제공
-> 해당 소프트웨어와 관련된 데이터도 클라우드에서 관리