728x90
반응형

운영체제: 컴퓨터 하드웨어를 효율적으로 관리

-> 성능+ 사용자에게 편의 제공하는 프로그램(S/W)

목표: covenience + performance

 

컴퓨터 시스템 구조

구성요소 4가지: 하드웨어/운영체제/응용프로그램/사용자

ㄴ하드웨어-기본적인 컴퓨팅 리소스(CPU, 메모리, I/O 장치)

ㄴ응용프로그램(워드 프로세서, 컴파일러, 웹 브라우저, )

 

#운영체제가 하는 일

*User View

: 사용되는 인터페이스에 따라 달라짐

-일반적인 사용자(PC)

: 사용자는 편리함 및 좋은 성능/ 자원 이용률에 관심X

-메인프레임 OR 미니컴퓨터에 연결된 터미널 사용자

: 자원 이용 극대화

-워크스테이션-서버 사용자

: 개인의 사용 편의성 + 자원 이용 적절한 조화

-휴대용 컴퓨터

: 전력 소모+ 사용의 편의성

-장치에 내장된 컴퓨터 OR 자동차에서 사용되는 일부 컴퓨터

*System View

-Resource allocator/manager

: 모든 자원 관리/ 효율과 공정한 자원 사용을 위한 결정

-Control program

: 컴퓨터의 잘못된 사용 OR 부적합한 사용 방지


#컴퓨터 시스템 구성

*Computer-System Operation

: 하나 이상의 CPU와 장치 제어기_공유 메모리 접근 <- 공통 버스로 연결

CPU와 장치는 병행 수행 -> 메모리 사용하기 위해 경쟁

 

컴퓨터 시작하기 위해

-POST(Power On-Self Test)

-Boot Loader(Booting Program)

ROM(Read-Only Memory) OR EPROM(Electrically Eraseable Programmable Rom)에 저장/ 펌웨어(firmware)라 불림

시스템의 모든 구성요소 초기화

운영체제 커널을 메모리에 적재 -> 커널 실행

시스템은 완전히 부트된 상태에서 대기(event 발생)

*Operating-System Structure

: 다중 프로그래밍_CPU가 항상 하나의 작업 수행할 수 있도록 함

여러 작업을 메모리에 적재/ 운영체제는 실행할 작업을 선택

if 실행 중인 작업이 무언가 기다려야 한다(ex. 입출력)

-> 운영체제는 다른 작업으로 전환

=> 실행할 작업이 최소 1, CPU 쉬지X

 

시분할(Timesharing(multitasking))

: CPU가 빈번하게 다른 작업으로 전환하도록 논리적으로 확장한 것

-사용자 각 작업과 상호작용 + 대화식 컴퓨팅(interactive computing)환경제공

응답시간(Response time) < 1

각 사용자는 메모리에 실행 중인 프로그램 적어도 1O -> 프로세스(process)

동시에 여러 작업 실행할 준비O -> CPU scheduling 스와핑(swapping)

가상메모리(Virtual memory)

*Interrupt

-By H/W

CPU 외부의 디스크 컨트롤러 OR 주변장치로부터 요구되는 것

운영체제의 처리를 요하는 상황 알리기 위해 전기적인 신호 사용

기계 검사 인터럽트

: 프로그램 실행 중 갑작스런 정전 OR 컴퓨터 자체 내 기계적인 문제 발생 경우

외부 인터럽트

: 오퍼레이터 OR 타이머에 의해 의도적으로 프로그램이 중단된 경우

입출력 인터럽트

: 입출력의 종료 OR 입출력의 오류에 의해 CPU의 기능이 요청된 경우

프로그램 검사 인터럽트

: 프로그램 실행 중 보호된 기억공간 내에 접근 OR 불법적인 명령 수행과 같은 프로그램의 문제가 발생한 경우

 

-By S/W = 트랩(trap) OR 예외(exception)

프로그램 실행 중 프로그램 상의 처리 불가능한 오류나 이벤트 알리기 위한 경우

ex. 존재X 메모리 주소에 접근/ 나눗셈에서 0으로 나누고자 하는 경우

 

인터럽트 서비스 루틴에게 제어권을 넘김

ㄴ종류별로 서비스 루틴 다름

/모든 서비스 루틴의 주소 저장O 자료구조: 인터럽트 벡터

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

ㄴ복귀주소, 복귀 전의 CPU 상태 복원

운영체제는 인터럽트가 발생해야 작동을 시작하는 방식

interrupt driven(=event driven)

*Operating-System Operations

현대 운영체제는 interrupt driven 방식

-소프트웨어 인터럽트(exception or trap)
소프트웨어 오류/ 운영체제 서비스 요청

e.g., division by zero, 무한 루프, 다른 프로세스. 운영체제 수정하려는 행위

 

-이중 모드(Dual-mode)

: 운영체제가 자기자신을 다른 시스템 구성요소로부터 보호하기 위한 장치

User mode and kernel mode

Mode bit <- 하드웨어

시스템이 사용자 코드 OR 커널 코드를 실행하고 있는지 구분

일부 명령어는 특권 명령어로 지정되어 있어 커널 모드에서만 실행O

 

-무한 루프, 프로세서 자원 독점을 방지하기 위한 타이머

: 일정 주기마다 컴퓨터에 인터럽트를 발생시키도록 타이머 세팅

물리적인 클럭에 의해 감소되는 카운터 유지

운영체제가 카운터 세팅 (특권 명령어)

카운터 -> 0 -> 인터럽트 발생

ㄴ제어권: 사용자 프로그램 -> 운영체제

*Storage Structures

-메인 메모리

: CPU가 직접 접근O 유일한 대용량 저장 매체

임의 접근(Random access)/ 보통 휘발성(volatile)

-보조 저장장치

: 대용량 비휘발성 저장 용량_메인 메모리의 확장

-하드 디스크

-반도체 디스크(Sollid-state disks)

: 고속 입출력 비휘발성 저장 매체/ 외부 충격에 강함, 작고 가벼움

 

저장장치 시스템 계층 구조 형성

: 속도(Speed)/비용(Cost)/ 휘발성 여부(Volatitly)

캐싱(Caching)

: 더 빠른 저장장치로 정보 복사하는 기법

/ 메인 메모리를 보조 저장장치

 

*Process Management

프로세스: 실행 중인 프로그램/ 시스템 안에서 작업의 단위

프로그램; 수동적 개체 vs 프로세스; 능동적 개체

자신의 업무 수행 -> 자원(CPU, 메모리, I/O, 파일, 초기화를 위한 데이터) 필요

명렁어 한 번에 하나씩 완료될 때까지 순차적 실행

종료될 때 재사용 가능 모든 자원 반환

 

-운영체제의 프로세스 관리

CPU 사용 위한 프로세스 OR 쓰레드 스케줄링

사용자와 시스템 프로세스 생성하고 제거

프로세스 일시중지 및 다시 시작

프로세스 간 동기화 할 수 있는 기법 제공

교착상태를 처리하기 위한 기법 제공

*Memory Management

메모리는 바이트의 대용량 배열, 각 바이트는 자신의 주소O

프로그램 실행에 필요한 데이터 전체 OR 일부 메모리에 있어야 함

 

-운영체제의 메모리 관리

프로세스에 의해 사용 중인 메모리 영역 추적

어느 프로세스(OR 일부)와 데이터를 메모리로 적재하거나 내보낼지 결정

필요에 따라 메모리 할당하고 반환

 

메모리 관리 기법 <- 하드웨어 설계

*Storage Management

물리적 특성 추상화 -> 논리적인 저장 단위 파일(file) 정의

ㄴ파일 생성자 -> 파일 정의/ 관련 정보 집합체/ 디렉토리 단위 구성

각 저장 매체 자신이 독특한 특성O

ㄴ접근 속도, 데이터 전송률, 접근 방식(순차 OR 임의)

 

-운영체제의 파일시스템 관리

파일과 디렉터리 생성과 삭제

파일과 디렉터리를 조작하기 위한 기본 기능 제공

파일을 보조 저장장치에 매핑

신뢰O (비휘발성) 저장장치에 파일 백업

비휘발성 대용량 데이터 디스크에 저장

 

-운영체제의 대용량 저장장치 관리

빈 공간 관리/ 저장장소 할당/ 디스크 스케줄링

-3차 저장 장치

optical storage, magnetic tape, USB etc.

WORM(write-once, read-many-times) and RW(read-write))

Mount and unmount 관리

*Protection and Security

-보호(Protection)

: 운영체제에서 정의한 리소스에 프로세스 OR 사용자가 액세스하는 것을 제어하는 모든 메커니즘

e.g., 메모리 주소 지정 하드웨어, 타이머 등

 

-보안(Security)

: 내부 및 외부 공격에 대한 시스템 방어

서비스 거부, , 바이러스, 신분 도용, 서비스 절도 등

 

-운영체제의 보호와 보안 기법

사용자 식별자(사용자 ID, 보안 ID)에는 이름 및 연동된 번호O

+ 사용자 당 하나씩 할당

UNIX 경우, 파일마다 권한 허용 범위 설정O

그룹 식별자(그룹 ID) ~> 사용자 집합 정의 + 관리

권한 상승(privilege escalation)은 더 많은 권한 가진 유효 ID로 변경

*Computer-System Architecture

대부분 시스템 하나의 범용 CPU 사용

다중처리기(Multiprocessors) 시스템 사용 + 중요성

(= 병렬 시스템, 멀티코어 시스템)

장점; 처리량/ 규모의 경제/ 신뢰성_결함 허용

비대칭 다중처리: 각 처리기가 특별한 임무 수행

대칭 다중처리: 각 처리기가 공통적인 임무 수행

 

멀티 코어 디자인

최근 경향의 칩 형태/ 단일 코어를 여러 개 가진 칩보다 효율적

-클러스터 시스템(Clustered Systems)

: 둘 이상의 독자적 시스템 OR 노드들 연결

storage-area network(SAN) ~> 저장장치 공유

실패해도 지속O 고가용 서비스 제공_비대칭 클러스터링/ 대칭 클러스터링

일부 클러스터 고성능 컴퓨팅 환경 제공

ㄴ응용프로그램 병렬처리가 가능하도록 작성되어야 함

*Computing Environments

-Moblie computing(ex. 휴대용 스마트 폰, 태블릿) vs 전통적 컴퓨터 기능

GPS, 가속도계, 자이로스코프 등/ 위치 서비스를 이용한 앱, 증강 현실 앱 등

연결 위해 IEE 802.11 무선 OR 셀룰러 데이터 네트워크 사용

Apple IOS Goolge Android

 

-Distributed Systems: 네트워크로 연결된 개별적인, 이기종 시스템 집합

네트워크; 통신 경로, TCP/IP를 가장 많이 사용

근거리 통신망(LAN)/ 광역 네트워크(WAN)

/ 대도시 지역 네트워크(MAN)/ 개인 영역 네트워크(RAN)

네트워크 운영체제(network operating system)

: 네트워크로 연결된 시스템 간의 기능 제공

시스템끼리 메시지 교환O 통신 체계/ 단일 시스템인 듯한 환상

 

-Client-Server Computing: 클라이언트가 생성한 요청에 서버

Compute-server 시스템

: 클라이언트에게 서비스(데이터베이스) 요청하기 위한 인터페이스 제공

파일 서버 시스템

: 클라이언트가 파일을 저장 및 검색할 수 있는 인터페이스 제공

 

-Peer-to-Peer Computing

P2P는 클라이언트와 서버 구분X 대신 모든 노드는 peer

peer는 클라이언트, 서버 OR 두 개의 역할

 

-Virtualization

운영체제가 다른 운영체제 내에서 하나의 응용처럼 실행될 수 있게 연구와 호환성 위해 랩톱 OR 데스크톱 컴퓨터에서 여러 운영체제 실행

광범위하게 사용 + 점점 성장하는 분야

VMM(virtual machine Manager)가 가상화 서비스 제공

 

-에뮬레이션(emulation)

 

-VMware

 

-Cloud Computing

: 컴퓨팅, 스토리지, 심지어 앱까지도 네트워크 통한 서비스로 제공O

가상화를 기능 기본으로 사용 -> 가상화의 논리적 확장

공중 클라우드(public cloud): 지불 할 의사O 누구나 인터넷 통해 이용O

사유 클라우드(private cloud): 회사 자체 사용 위해 회사에서 운영

Software as a Service(SaaS)

: 인터넷 통해 사용O 하나 이상의 응용 프로그램(ex. 워드 프로세서)

Platform as a Service(PaaS)

: 응용프로그램이 인터넷 통해 사용O 준비된 소프트웨어 스택(데이터베이스서버)

Infrastructure as a Service(IaaS)

: 인터넷 통해 사용O 서버 OR 저장장치(백업용으로 사용O 저장장치)

 

 

728x90
반응형

'💻 > 컴퓨터구조 | 운영체제' 카테고리의 다른 글

CH6. CPU Scheduling  (0) 2022.05.19
CH5. Process Synchronization  (0) 2022.05.19
CH4. Threads  (0) 2022.05.19
CH3. Process  (0) 2022.05.19
CH2. Operating System Structures  (0) 2022.05.19
김앩옹