Ch02_ 하드웨어와소프트웨어개념 운영체제론
학습목표 ü 01_ 소개 ü 02_ 하드웨어장치의발전 ü 03_ 하드웨어구성요소 ü 04_ 하드웨어의운영체제지원 ü 05_ 캐싱과버퍼링 ü 07_ 응용프로그래밍인터페이스 ü 08_ 컴파일링, 링킹, 로딩 ü 09_ 펌웨어 ü 10_ 미들웨어 2/23
01_ 소개 o 운영체제의주요역할 자원관리 운영체제설계시에는관리할하드웨어와소프트웨어자원들과밀접한연계가필요 하드웨어 & 소프트웨어자원 ü 프로세서 ü 메모리 ü 2차저장소 ü 기타장치 ü 프로세스 ü 스레드 ü 파일 ü 데이터베이스 3/23
02_ 하드웨어장치의발전 o 대부분의운영체제는하드웨어구성에의존하지않게구현 특정장치를대상으로입출력시디바이스드라이버사용 ex) 플러그앤플레이장치 - 컴퓨터에연결시자신이어떤장치인지운영체제에알림 인텔프로세서의연도별트랜지스터수 4/23
03_ 하드웨어구성요소 o 컴퓨터하드웨어의구성 프로세서 메인메모리 입출력장치 o 메인보드 인쇄회로기판 (PCB, Printed Circuit Board) 보드의장치들을전기적으로연결해주는하드웨어구성요소 메인보드 - 시스템의중심 PCB ü 여러하드웨어구성요소 ( 프로세서, 메인메모리등 ) 를꽂을수있는슬롯을내장 ü 저수준기능을담당하는컴퓨터칩포함 (e.g., BIOS) 5/23
03_ 하드웨어구성요소 o 프로세서 일련의기계어명령어를실행하는하드웨어구성요소 CPU, Central Processing Unit - 프로그램의명령어를실행하는프로세서 보조프로세서 - 특수목적명령어들을효율적으로실행 ü ex) 그래픽이나디지털신호처리기 명령어페치기 - 명령어레지스터에명령어를로드 명령어해석기 - 명령어를해석하고이에해당하는입력정보를실행처리기에전달 ALU, Arithmetic and Logic Unit - 덧셈, 곱셈같은기본적인산술연산과대소비교같은논리연산수행 캐시 - 고속메모리, 메인메모리에있는데이터의복사본을저장하여프로세서의효율향상 ü 종류 - L1 캐시, L2 캐시 레지스터 - 프로세서에위치한고속메모리 ü 프로세서가데이터를조작하려면해당데이터가레지스터에위치해야함 6/23
03_ 하드웨어구성요소 o 프로세서 (CONT) 프로세서구성요소 7/23
03_ 하드웨어구성요소 o 클록 컴퓨터시간은흔히사이클 ( 클록틱 ) 을통해측정 사이클 - 시스템클록생성기가보낸전기신호의한진폭 클록생성기는버스가데이터를나르는주기결정 ü 초당사이클수 (Hz, hertz) 로측정 8/23
03_ 하드웨어구성요소 o 메모리계층 가장빠르고비싼메모리는최상위계층, 가장저렴하고속도가느린메모리는최하위계층 휘발성매체 - 전원을끄면데이터가사라짐 레지스터, 캐시, 메인메모리 9/23
03_ 하드웨어구성요소 o 메인메모리 휘발성임의접근메모리 (RAM, Random Access Memory) 프로세스가어떤순서로든데이터에접근가능 종류 ü 동적램 (DRAM, Dynamic RAM) 재생회로필요 ü 정적램 (SRAM, Static RAM) 재생회로불필요 대역폭 단위시간당이동하는데이터양 o 2 차저장소 저비용으로대용량의데이터를영구적으로보관 데이터의접근속도가메인메모리보다느림 ü 읽기 / 쓰기헤드의물리적인움직임 ü 회전지연시간 ü 헤드를통해데이터가통과하는전송시간 데이터백업이나이동가능한 2 차저장장치 ü CDs(CD-R, CD-RW), DVDs(DVD-R, DVD+R), 집디스크, 플로피디스크, 플래시메모리카드, 테이프 10/23
03_ 하드웨어구성요소 o 버스 트레이스의집합 트레이스 하드웨어장치들간의정보를전송하는아주작은전기적연결선 포트 정확히두장치를연결하는버스 입출력채널 서너개장치에서입출력기능을수행할때공유하는버스 프론트사이드버스 (FSB, Front Side Bus) 프로세서들을메모리모듈에연결 11/23
03_ 하드웨어구성요소 o 직접메모리접근 (DMA, Direct Memory Access) 메모리와입출력장치간의데이터전송효율향상 장치들과컨트롤러들이데이터블록을메인메모리에직접전송 프로세서는자유롭게소프트웨어명령어들을실행 DMA 채널은입출력컨트롤러를사용해데이터전송을관리 ü 입출력연산이완료되면인터럽트를통해프로세서에알림 다량의입출력기능을담당하는시스템의성능을크게향상 (e.g., 메인프레임, 서버 ) 12/23
03_ 하드웨어구성요소 o 주변장치 컴퓨터가소프트웨어명령어를실행하는데필수적이지않은하드웨어 내부주변장치 (= 통합주변장치 ) 네트워크인터페이스카드, 모뎀, 사운드카드, 하드디스크, 내부 CD-ROM 드라이브등 문자장치는한번에한문자데이터를전송 키보드와마우스 포트와기타버스를통해컴퓨터에추가 직렬포트, 병렬포트, USB, IEEE 1394 포트, SCSI 13/23
03_ 하드웨어구성요소 o 주변장치 (CONT) 14/23
04_ 하드웨어의운영체제지원 o 프로세서 대부분의운영체제는프로세서를통해보호메커니즘구현 프로세스가할당받지않은메모리에접근하는것을막음 컴퓨터시스템의몇가지다른실행모드 ü 사용자모드 ü 커널모드 - 특권명령어실행과원하는작업을수행하기위한자원의접근가능 메모리보호와관리 프로세스가자신이할당받지않은메모리에접근하는것을방지 특권명령어로만수정가능한프로세서레지스터를사용해구현 인터럽트와예외 대부분의장치는이벤트발생시프로세서에인터럽트라는신호를보냄 예외 - 오류에대한반응으로발생하는인터럽트 15/23
04_ 하드웨어의운영체제지원 o 부트스트랩핑 운영체제를메모리에로드하는과정 BIOS, Basic Input/Output System에의해수행 ü 시스템하드웨어초기화 ü 2차저장소의부트섹터에서명령어들을읽어메인메모리에로드 시스템을로드하지못하면, 컴퓨터의어떤하드웨어에도접근불가능 16/23
05_ 캐싱과버퍼링 o 캐싱과버퍼링 캐시 고속메모리 캐시적중 (cache hit) 참조하는정보가캐시메모리에있는경우 캐시실패 (cache miss) 참조하는정보가메모리에없는경우 메모리참조의상당수가캐시적중되어야성능향상가능 캐시의예 ü L1과 L2 프로세서캐시 ü 메인메모리의일정부분을할당해 2차저장소의데이터를캐시하는데활용 버퍼 장치들사이혹은서로다른속도로동작하는프로세스들사이에서데이터를전송할때일시적으로데이터를보관하는저장영역 소프트웨어와하드웨어장치들이데이터를비동기적으로전송하게함으로써시스템성능향상 스풀링 한프로세스와저속또는버퍼가제한된입출력장치사이에디스크와같은중간매개체를두는기술 17/23
07_ 응용프로그래밍인터페이스 o API, Application Programming Interface 프로그래머들이운영체제에서비스를요청할수있는일련의루틴을제공 소프트웨어와운영체제간통신은오직 API를통해수행 API의예 POSIX 표준 윈도우 API 18/23
08_ 컴파일링, 링킹, 로딩 o 고급언어로작성한프로그램의실행 기계어로컴파일 실행에필요한여러기계어프로그램과링크 메모리에로드 19/23
08_ 컴파일링, 링킹, 로딩 o 컴파일링 고급언어로작성한코드를기계어로변환하는작업 컴파일단계 렉서 ü 프로그램의문자들을토큰으로분리 파서 ü 토큰을구문적으로올바른문장으로그룹화 중간코드생성기 ü 구문구조를간단한명령어스트림으로변환 옵티마이저 ü 코드의실행효율을높이고메모리요구량을줄임 코드생성기 ü 기계어명령어를담고있는오브젝트파일생성 20/23
08_ 컴파일링, 링킹, 로딩 o 링킹 프로그램은독립적으로개발된몇개의하위프로그램으로구성 ( 모듈 ) 공통적인컴퓨터루틴을수행하는기능은라이브러리라는미리컴파일된모듈패키지로준비됨 링킹 프로그램에서참조하는다양한모듈을실행가능한한단위로통합하는과정 링킹은컴파일후로딩전, 로드시간이나실행시에수행가능 오브젝트모듈 21/23
08_ 컴파일링, 링킹, 로딩 o 링킹 (CONT) 링킹과정 22/23
08_ 컴파일링, 링킹, 로딩 o 링킹 (CONT) 심볼확정 23/23
08_ 컴파일링, 링킹, 로딩 o 로딩 로더 ü 명령어와데이터유닛을특정메모리주소에배치 절대로딩 ü 프로그래머나컴파일러가명시한주소에배치 재배치가능한로딩 ü 실제메모리주소로변환해야하는상대주소를포함할때수행 동적로딩 ü 프로그램의모듈을처음사용하는시점에로딩하는기술 24/23
08_ 컴파일링, 링킹, 로딩 o 컴파일링, 링킹, 로딩 25/23
09_ 펌웨어 o 펌웨어 종종읽기전용메모리가부착된영구저장소에저장되는실행가능한명령어들 마이크로프로그래밍으로프로그래밍 마이크로프로그래밍 기계어보다아래에있는프로그래밍계층 26/23
10_ 미들웨어 o 분산시스템을위한소프트웨어 한컴퓨터에서실행하는응용프로그램이원격컴퓨터에서실행하는다른응용프로그램과통신할수있게함 이기종컴퓨터플랫폼에서응용프로그램이실행가능 ODBC, Open DataBase Connectivity ODBC 드라이버라는미들웨어를통해응용프로그램이데이터베이스에접근 27/23
운영체제론