운영체제와 부팅
운영체제
하드웨어 자원을 효율적으로 관리하고, 또한 응용 프로그램에 공통된 서비스를 제공하는 소프트웨어의 모음
컴퓨터 시스템을 동작시키고 응용 소프트웨어의 실행을 지원하는 플랫폼을 제공하기 때문에 운영체제가 반드시 실행되고 있어야 한다.
※ 운영체제의 기능
- 컴퓨터 시스템의 하드웨어 자원 관리
- 사용자와 하드웨어 사이의 인터페이스 역할
- 하드웨어의 고장 탐색, 오류처리, 보안유지
부팅(booting) ≒ 부트스트랩(bootstrap) ≒ IPL(initial program load)
운영체제가 컴퓨터 하드웨어를 관리하고 응용 소프트웨어를 실행할 수 있도록 컴퓨터에 시동을 거는 것으로, 보조기억장치에 저장된 운영체제를 메인 메모리에 불러들이는 과정
※ 부팅과정의 필요성
- ① 모든 S/W는 H/W에서 동작하기 위해 메인 메모리인 RAM에 적재되어야 한다. CPU는 RAM에 적재된 프로그램만 실행할 수 있기 때문
- ② RAM은 휘발성(volatile) 기억장치이므로 전원이 차단되면 RAM에 저장된 모든 내용이 소멸되므로 컴퓨터의 전원을 새롭게 인가하면 RAM에 아무 내용이 없다.
- ③ 운영체제가 RAM에 적재되어 있지 않기 때문에, 컴퓨터의 전원을 켜면 운영체제를 하드웨어에서 실행할 수 없어서 응용 소프트웨어도 실행할 수 없다.
※ 부팅과정
- 부트로더(bootloader) ≒ 부트스트랩 로더(bootstrap loader) : HDD와 같은 보조기억장치에 저장된 운영체제를 메인 메모리에 단계적으로 적재하는 소규모 프로그램. ROM에 저장된 고정 프로그램으로 펌웨어에 속한다.
- ROM : 메인 메모리로 사용되는 RAM처럼 CPU가 프로그램을 수행할 수 있는 기억 공간. 기본적으로 저장된 내용을 수정할 수 없으며, 전원 제공 여부와 상관없는 비휘발성(non-volatile) 메모리이다.
- 운영체제는 하드디스크와 같은 보조기억장치의 고정된 위치에 존재한다. 따라서 ROM에 저장되어 있는 부트로더는 운영체제의 위치를 알기 때문에 운영체제를 RAM에 적재할 수 있다.
※ 부팅 과정을 두 단계 이상으로 수행하여 운영체제의 위치에 대한 융통성을 제공하는 부팅 과정
BIOS를 추가하고 부트로더가 s/w로 HDD의 첫번째 섹터인 MBR(master boot record)에 저장
- ① 컴퓨터에 전원을 인가하면 ROM에 저장된 BIOS가 실행된다.
- ② BIOS는 CPU, 메인 메모리, 하드디스크와 같은 각종 하드웨어의 상태를 검사한 후 이상이 있으면 오류를 통지하고 동작을 멈춘다.
- ③ BIOS는 부팅 매체인 하드디스크에 저장된 부트로더를 메인 메모리로 옮긴다. 2개 이상의 부팅 매체를 지정하여 BIOS로 하여금 운영체제를 선택하도록 할 수도 있다 : 멀티 부팅(multi-booting)
- ④ 부트로더는 BIOS를 종료후 하드디스크에 저장된 운영체제를 메인 메모리에 적재한 후 운영체제에 제어권을 넘긴다.
- ⑤ 운영체제는 응용 소프트웨어의 실행 환경을 조성.
컴파일러와 인터프리터
어셈블리어 : 하드웨어는 저급 언어인 기계어만을 인식하는데, 기계어를 연상 부호화(mnemonic)한 것
- 속도와 크기가 매우 중요한 프로그램
- 속도가 매우 중요한 프로그램의 일부분
- 오래된 컴퓨터나 특수한 컴퓨터에 사용되는 프로그램
- 프로세서의 동작 모드를 바꿀 필요가 있는 프로그램
컴파일러
고급언어로 작성된 원시 프로그램을 저급언어로 구성된 목적 프로그램으로 변환하는 소프트웨어. 즉, 컴파일러의 입력은 원시 프로그램이고 출력은 목적 프로그램이다.
원시 프로그램을 전체적으로 분석하여 변환하므로 많은 시간이 소요되지만, 변환 과정을 한 번만 거치면 항상 실행파일을 수행할 수 있고, 또한 프로그램을 최적화할 수 있기 때문에 프로그램의 실행 속도가 빠르다.
정적 바인딩(static binding) 방식을 사용하므로 데이터 형식이 고정된 프로그램에서 사용될 수 있다.
인터프리터
고급언어에서 하나의 명령어를 분석하여 동일한 효과를 가진 저급언어 명령어로 변환한 후 저급언어 명령어를 실행시키며, 전체 프로그램이 실행될 때까지 이 과정을 반복하는 소프트웨어
원시 프로그램을 명령어 단위로 변환하고 프로그램 전체에 대해 분석하지 않으므로 변환 시간이 짧다. 그러나 프로그램을 실행할 때마다 변환 과정이 필요하고, 또한 프로그램을 최적화할 수 없기 때문에 프로그램의 실행속도가 느리다.
동적 바인딩(dynamic binding) 방식을 사용하므로 데이터 형식이 동적으로 결정되는 프로그램에서 사용될 수 있다.
컴퓨터의 구조, 구성, 실현
컴퓨터는 하드웨어, 소프트웨어, 명령어 집합 구조로 구성되어 있다.
컴퓨터 구조(computer architecture)(아키텍쳐)(What : 무엇)
- 하드웨어와 소프트웨어의 인터페이스에 대한 설명을 의미하는 명령어 집합 구조(ISA)에 해당되며, 컴퓨터 아키텍쳐 혹은 CPU 아키텍쳐라고도 한다.
- 프로그래머에게 보이는 시스템의 속성
- 컴퓨터의 기능을 설명해주지만, 어떻게 만들어졌는지를 컴퓨터 구조를 통해 알 수는 없다.
컴퓨터 구성(computer organization)(How : 어떻게)
- 아키텍처 사양에 대한 형체를 제공하는 논리적인 골격, 즉 CPU와 각종 구성 요소, 관현 회로의 인터페이스에 대한 세부 사항
- 프로그래머에게 투명한 하드웨어 내역을 의미
- 컴퓨터의 구현, 마이크로아키텍쳐라고도 부름
컴퓨터 실현(computer realization)
컴퓨터 구현의 구체적인 버전으로, 어떤 컴퓨터 부품이 사용되며 그 부품들이 어떻게 서로 연결되고 배치되는지를 결정
컴퓨터 계열(computer family)
동일한 컴퓨터 구조를 사용하지만 다른 방식으로 시스템을 구현한 컴퓨터의 집합
소프트웨어의 호환성 이라는 개념을 제공
하드웨어와 소프트웨어의 상호 조정
컴퓨터 시스템의 모든 기능은 하드웨어로도 구현할 수 있고 소프트웨어로 구현할 수 있다.
예를 들면, 간단한 사칙연산 기능을 하드웨어나 펌웨어로 구현할 수도 있지만 소프트웨어로 코딩하여 실행할 수도 있다. 이떄 하드웨어로 구현하면 고성능이지만 비용이 많이 들고 소프트웨어로 실행하면 성능이 떨어지지만 융통성이 높은데, 하드웨어와 소프트웨어의 인터페이스에 해당하는 컴퓨터 구조의 특성을 결정할 때 반드시 이에 대한 상호 조정(tradeoff)이 필요하다.
최근 복잡한 데이터가 출현하고 사용자의 요구가 매우 다양해지고 있기 때문에 이를 충족하여면 하드웨어와 소프트웨어의 인터페이스인 아키텍처 설계에 신중해야 한다.
'컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] 컴퓨터 시스템 구성요소 (0) | 2020.10.04 |
---|---|
[컴퓨터구조] 폰노이만 구조(아키텍쳐) (0) | 2020.09.23 |