컴퓨터 공학

운영체제 1장

혼새미로 2015. 11. 26. 03:59
반응형
  • 1.1 운영체제가 할일
  • -사용자 관점
  • -시스템 관점
  • 1.1.1 사용자 관점(User View)
  • PC작업
  • 대형컴퓨터나 미니컴퓨터에 연결된 터미널 사용
  • 워크스테이션이나 서버 사용
  • 1.1.2 시스템관점(System View)
  • 운영체제 = 자원할당자 (resource allocator)
  • 컴퓨터 시스템을 효율적이고 공정하게 운영할 수 있도록 어느 프로그램과 사용자에게 자원을 할당할지 결정
  • 운영체제 = 제어 프로그램(control program) : 컴퓨터의 부적절한 사용 방지를 위해 사용자 프로그램 실행을 제한함. 특히 입출력제어에 주요함
  • 1.1.3 운영체제의 정의
  • 자원을 제어하고 할당하는 기능을 하나의 소프트웨어로 통합한것
  • 커널이라 불리기도 함
  • -시스템 프로그램 : 운영체제와 연관되어 있으나 커널의 일부분이 아닌 프로그램
  • -응용 프로그램 : 시스템의 운영과는 상관없이 다른 모든 프로그램
  • 1.2 컴퓨터 시스템의 구성
  • 1.2.1 컴퓨터 시스템 동작(computer system operation)
  • 현대의 범용컴퓨터 시스템은 공유 메모리에 대한 접근을 제공하는 공통 버스를 통해 연결된 여러개의 장치제어기와 하나 이상의 CPU로 구성되어있다.
  • 메모리 제어기 : 메모리 접근 동기화
  • 컴퓨터가 구동하기 위해서는 실행할 초기 프로그램이 있어야한다(펌웨어)
  • -시스템의 모든면을 초기화함
  • -하드웨어는 어느 순간이든 시스템버스를 통해 CPU에 신호를 보내 인터럽트를 발생시킬 수 있다.
  • -소프트웨어는 시스템호출(system call)을 통해 인터럽트를 발생한다.
  • -CPU가 인터럽트되면 하던일을 중단하고 즉시 고정된 위치로 실행을 옮긴다.
  • -- 이 고정된 위치는 인터럽트를 위한 서비스루틴이 위치한 시작주소를 가지고있다
  • - 인터럽트 서비스루틴의 실행이 완료되면 CPU는 인터럽트 되었던 연산을 재개한다.
  • 1.2.2 저장장치 구조(storage structure)
  • 범용컴퓨터는 대부분의 프로그램을 읽기,쓰기 가능한 메모리인 주 메모리(RAM)에서 실행시킨다
  • 모든 형태의 메모리는 워드의 배열을 제공하며 각 워드는 고유의 주소를 갖고 있다
  • 상호작용은 특정 메모리 주소들에 대한 일련의 적재 또는 저장 명령을 통하여 이루어짐
  • -적재명령은 주 메모리로부터 CPU내부의 레지스터로 한 워드를 옮긴다.
  • -저장명령은 레지스터의 내용을 주 메모리로 옮긴다.
  • 메모리 장치는 연속적인 메모리 주소만을 인식한다.
  • 프로그램과 데이터가 주메모리에 영구히 존재 못하는 이유
  • - 주 메모리는 모든 필요한 프로그램과 데이터를 영구히 저장하기엔 너무 작다.
  • - 주 메모리는 전원이 공급되지 않으면 그 내용을 잃어버리는 휘발성 장치이다.
  • 자기디스크
  • 저장장치계층(레지스터,캐시,주메모리,전자디스크,자기디스크,광디스크,자기테이프)
  • 1.2.3 입출력구조
  • SCSI(small computer system interface):주변기기를 컴퓨터에 연결할때 직렬방식으로 연결하기 위한 표준
  • 장치제어기 : 자신이 제어하는 주변장치와 자신의 로컬버퍼저장장치 사이의 데이터 전송담당
  • -운영체제는 각 장치제어기마다 디바이스 드라이버를 갖고있음
  • -입출력연산을 위해 디바이스드라이버는 장치제어기의 적절한 레지스터에 필요한 값을 적재한다.
  • -장치제어기는 레지스터의 내용을 조사한다.
  • -제어기는 장치로부터 자신의 로컬버퍼로 데이터전송을 시작한다.
  • -데이터 전송 완료후 장치제어기는 자신이 연산을 완료했음을 인터럽트를 이용하여 디바이스 드라이버에 통보한다.
  • - 디바이스 드라이버는 제어를 운영체제에 반납한다.
  • DMA(direct memory access) : 입출력 장치제어기가 CPUㅇ 의한 프로그램의 실행없이 자료의 이동을 할 수 있도록 함
  • - 속도가 느린 장치처럼 한 바이트마다 인터럽트가 발생하는것이 아니라 블록전송이 완료할때마다 인터럽트가 발생한다.
  • 1.3 컴퓨터 시스템 구조
  • 1.3.1 단일 처리기 시스템
  • 운영체제는 처리기들이 실행할 다음 태스크에 대한 정보를 보내고 처리기 상태를 감시한다.
  • 1.3.2 다중처리기 시스템
  • 증가된 처리량(throughput) : 보다 짧은 시간동안에 보다 많은 일을 실행하기를 바란다.
  • 규모의 경제 : 여러개의 단일 시스템에 비해 비용절약 가능
  • 증가된 신뢰성 : 한 처리기가 고장나도 단지 속도만 느려짐
  • -비대칭적 다중처리(asymmetric multiprocessing) : 하나의 주처리기가 시스템을 제어한다. 다른 처리기들은 주처리기의 명령을 실행하거나 미리정의 태스크를 실행한다.
  • -대칭적 다중처리(symmetric multiprocessing) : 각 처리기가 운영체제내의 모든작업을 실행한다. 주종관계가 없다. 주처리기는 자신고유의 레지스터 집합과 지역적 캐시를 갖고있다.
  • SMP : 대칭적 다중처리
  • 다중처리는 메모리접근모델을 일정한 메모리접근(UMA)에서 차등메모리접근(NUMA)형태로 변경할 수 있다.
  • -UMA : 모든 CPU가 RAM을 접근 하는데 걸리는 시간이 같은 경우로 정의된다.
  • -NUMA: 메모리의 일부분에 접근하는데 걸리는 시간이 다른 부분에 접근하는데 걸리는 시간이 다른 부분에 접근하는데 걸리는 시간보다 길어지게 되며 성능에 불이익을 받는다.
  • 블레이드 서버 : 다수의 처리기보드 및 입출력 보드, 네트워킹 보드들이 하나의 섀시안에 장착되는 형태를 가진다.
  • - 독립적으로 부팅 가능
  • - 자기자신의 운영체제 실행
  • 1.3.3 클러스터형 시스템
  • 여러개의 CPU들이 함께 계산작업을 실행한다.
  • 둘 이상의 독자적 시스템 혹은 노드들이 결합하여 구성됨
  • LAN같은 고속상호연결망으로 연결됨
  • 비대칭구성
  • - 다른 컴퓨터들이 응용프로그램을 실행시키는 동안 한 컴퓨터는 긴급대기모드 상태를 유지한다.
  • 대칭 구성
  • - 둘이상의 호스트들이 응용프로그램을 실행시키고 서로를 감시한다.
  • 응용프로그램이 클러스터의 이점을 활용하도록 병렬화(parallelization)라는 기법을 이용하여 특별히 작성되어야함
  • 병렬 클러스터 : 여러 호스트가 공유저장장치상의 동일한 데이터를 접근할 수 있게한다.
  • 1.4 운영체제의 구조
  • 운영체제의 가장 중요한 측면은 다중 프로그램을 할수있는 능력이다.
  • 시분할 시스템은 CPU가 다수의 작업들을 서로 교대로 실행한다.
  • -응답시간이 짧아야한다
  • -CPU스케줄링과 다중프로그래밍을 사용한다.
  • 프로세스 : 메모리에 적재되어 있고, 실행되고 있는 프로그램
  • 시분할 시스템에서 운영체제는 적절한 응담시간을 보장하기 위해 작업들을 주메모리에서 디스크로 스왑인 또는 스왑아웃을 한다(가상메모리 사용)
  • 1.5 운영체제의 동작
  • 현대 운영체제는 인터럽트 구동식(interrupt driven)이다.
  • 사건은 거의 항상 인터럽트나 트랩을 발생시켜 신호를 보낸다.
  • - 트랩 : 오류(0나누기,비유효 메모리접근) 혹은 사용자프로그램의 운영체제 서비스 실행 요청에 의해 유발되는 소프트웨어에 의해 생성된 인터럽트
  • 하나의 인터럽트를 처리하기 위해 하나의 인터럽트 서비스루틴이 제공된다.
  • 1.5.1 이중동작모드(dual mode operation)
  • 사용자모드, 커널모드
  • 모드비트(mode bit) : 현재의 모드를 나타냄
  • -운영체제를 위해 실행되는 작업과 사용자를 위해 실행되는 작업을 구분할 수 있음
  • 트랩이나 인터럽트 발생 때마다 하드웨어는 사용자모드에서 커널모드로 전환한다
  • 하드웨어는 특권명령(privileged instruction)이 커널모드에서만 실행되도록 허용한다.
  • 시스템호출 : 사용자프로그램이 자신으 대신하여 운영체제가 실행하도록 미리 지정되어 있는 작업들 운영체제에게 요청할 수 있는 방법을 제공한다.
  • - 하드웨어에 하나의 소프트웨어 인터럽트로 취급된다.
  • 1.5.2 타이어
  • - 지정된 시간후 컴퓨터를 인터럽트하도록 설정할 수 있다.
  • 1.6 프로세스 관리
  • 프로세스는 다음 실행할 명령을 지정하는 프로그램 카운터를 가진 능동적 개체이다.
  • 반드시 순차적으로 실행된다.
  • 두개의 프로세스가 동일한 프로그램과 연관되어 그들은 두개의 별도의 실행 순서로 간주된다.
  • 운영체제는 프로세서 관리와 연관해 다음과 같은 활동에 대한 책임을 진다.
  • -CPU에게 프로세스와 스레드 스케줄링
  • -사용자 프로세스와 시스템 프로세스의 생성과 제거
  • -프로세스의 일시중지와 재실행
  • -프로세스 동기화를 위한 기법 제공
  • -프로세스 통신을 위한 기법 제공
  • 1.7 메모리 관리
  • 주 메모리는 CPU가 직접 주소를 지정할수있고 직접 접근할수있는 유일한 대량메모리이다.
  • 프로그램이 실행되기 위해서는 반드시 절대주소로 맵핑되고 메모리에 적재되어야한다.
  • 운영체제는 메모리관리와 관련하여 다음과 같은 일을 담당해야 한다.
  • -메모리의 현재 어느부분이 사용되고 있으며, 누구에 의해 사용되고 있는지 추적해야한다.
  • -어떤 프로세스들을 메모리에 적재하고 제거할 것인가를 결정해야 한다.
  • -필요에 따라 메모리공간을 할당하고 수정해야 한다.
  • 1.8 저장장치관리
  • 1.8.1 파일시스템관리
  • 파일 : 파일생성과에 의해 정의된 관련정보의 집합체이다.
  • 운영체제는 파일관리를 위해 다음과 같은 일을 담당한다.
  • -파일생성 및 제거
  • -디렉토리 생성 및 제거
  • -파일과 디렉터리를 조작하기 위한 프리미티브의 제공
  • -파일을 저장장치로 맵핑
  • -안정적인 저장매체에 파일을 백업
  • 1.8.2 대용량 저장장치 관리
  • 운영체제는 디스크관리를 위해 다음과 같은 기능을 담당한다.
  • - 자유공간의 관리
  • -저장 장소 할당
  • -디스크 스케줄링
  • 1.8.3 캐싱(caching)
  • 정보가 사용됨에 따라 보다 빠른 장치인 캐시에 일시적으로 복사된다.
  • 캐시로부터 cpu 및 레지스터로의 데이터이동은 통상 운영체제 간섭없이 하드웨어적으로 이루어진다.
  • 캐시 일관성 문제 : 여러개의 cpu가 모두 동시에 실행될수있으므로 한 캐시에 있는 A값이 갱신될경우 그값은 A가 존재하는 모든 캐시에 즉각 반영되어야한다.
  • 1.8.4 입출력 시스템(I/O System)
  • 운영체제의 목적중하나는 사용자에게 특정하드웨어 장치의 특성을 숨기는 것이다.
  • 입출력 시스템은 다음과 같이 구성되어 있다.
  • - 버퍼링, 캐싱, 스풀링을 포함한 메모리 관리 구성요소
  • -일반적인 장치 드라이버 인터페이스
  • -특정 하드웨어 장치를 위한 드라이버
  • 1.9 보호와 보안
  • 메모리 주소 지정 하드웨어는 프로세스가 자신의 주소 영역에서만 실행될수있도록 보장한다.
  • 타이머는 모든 프로세스가 CPU의 제어를 얻은후결국에는 제어를 양도하도록 보장한다.
  • 여러 주변장치의 무결성이 보호받을수있도록 장치제어 레지스터들을 사용자가 접근할수없게한다.
  • 보호:컴퓨터 시스템이 정의한 자원에 대해 프로그램, 프로세스, 또는 사용자들의 접근을 제어하는 기법
  • -구성요소 : 서브시스템 간의 인터페이스에서 잠재적인 오류를 검출함으로써 시스템의 신뢰성을 증가시킴
  • 보호와 보안을 제공하기 위해서는 시스템의 모든 사용자들을 구분할 수 있어야한다.
  • - 사용자 식별자(user IDs)사용
  • 1.10 분산 시스템(Distributed system)
  • 분산 시스템 : 물리적으로 떨어져있는 이 기종 컴퓨터들의 집합
  • - 네트워크에 의존함
  • 네트워크 운영체제 : 네트워크를 통한 파일의 공유, 다른 컴퓨터 상에 존재하는 다른 프로세스들끼리의 메시지 교환을 제공하는 운영체제
  • 1.11 전용시스템
  • 1.11.1 실시간 내장형 시스템 (Real-Time embedded system)
  • 반드시 정의된 제한 시간내에 처리가 이루어져야 하며 그렇지 않은 경우 시스템은 실패하게 된다.
  • 1.11.2 멀티미디어 시스템
  • 1.11.3 휴대용시스템
  • 대부분 전용 내장형 운영체제를 실행한다
  • 1.12 계산환경
  • 1.12.1 전통적계산
  • 네트워크 컴퓨터 : 실질적으로 웹기반 컴퓨팅을 이해하는 터미널을 말한다
  • 1.12.2 클라이언트 서버 계산
  • 클라이언트-서버 시스템 : 클라이언트 시스템에 의해 생성된 요구를 만족시키기 위해 서버시스템이 동작한다.
  • 서버 시스템
  • - 계산 서버 시스템 : 클라이언트가 어떤 작업을 요청할 수있는 인터페이스를 제공한다.
  • -  파일-서버 시스템 : 클라이언트가 파일을 생성, 갱신, 읽기 및 제거할 수 있는 파일 시스템 인터페이스 제공
  • 1.12.3 피어간계산(peer to peer computing)
  • 서버와 클라이언트가 구분되지 않음
  • 서비스가 여러노드에 의해 제공
  • 어떤 서비스가 가능한지 결정하는 방법
  • - 노드가 네트워크에 참가할때 네트워크그의 중앙검색 서비스에 자신이 제공하는 서비스를 제공한다. 특정 서비스를 원하는 노드는 먼저 이 중앙검색 서비스를 통하여 어떤 노드가 서비스를 제공하는지 확인해야한다. 나머지 통신은 클아이언트와 서비스 제공자 사이에서만 발생하게 된다.
  • - 클아이언트로 동작하는 피어는 원하는 서비스를 제공하는 노드를 찾아내기 위해 네트워크 상의 모든 노드에게 서비스 요청메시지를 방송한다. 그 서비스를 제공하는 노드는 피어에게 응답메시지를 보낸다.
  • 1.12.4 웹기반 컴퓨팅
  • 부하균등기(load balancer) : 웹기반 계산의 구현은 네트워크 연결을 비슷한 서버들의 풀에 분배하는 장치
  • 1.13 오픈소스 운영체제
  • 1.13.1 역사


반응형

'컴퓨터 공학' 카테고리의 다른 글

운영체제 3장  (0) 2015.11.26
운영체제 2장  (0) 2015.11.26
컴퓨터 구조 2-2  (0) 2015.11.26
스탠포드 대학교 강의 ( 프로그래밍 방법론)  (0) 2015.11.26
컴퓨터 구조2-1  (0) 2015.11.26