[운영체제] 부트스트랩 및 BIOS와 POST

 

중앙처리장치(CPU) 내에서 모든 연산은 제어장치 통제에 따라 동기화 되어 일어난다.

그러나 입출력의 경우 중앙처리장치와 비동기적(Asynchronous)으로 수행되는 경우가 대부분이다.

이는 중앙처리장치와 입출력 장치에 대한 작동이 독립적이며 병행적으로 수행된다는 뜻이다.

 

운영체제 부트스트랩
운영체제의 부팅과정(부트스트랩)은 조건에 따라 매우 복잡하게 구현되어있다.

 

일반적으로 입출력장치의 특성, 상태 또는 입출력장치 명령어 특성에 따라 입출력의 수행시간을 일정하지 않다. 이는 입출력 장치의 기계적인 특성과 입출력 기능을 수행하기 위하여 필요한 기계적인 작동 과정에 기인한 것이다.

 

언급한 처리 속도의 차이 및 불확실성 때문에 비출력장치와 중앙처리장치 간의 상호 작용에는 세심한 주의가 필요하고 이에 따라 입출력 프로그램이 필요하다.

 

1. BIOS(Basic Input Output System)

컴퓨터에 전원을 넣어 파워 공급이 시작되는 경우 메인보드와 CPU에 파워가 준비되었다는 신호를 보낸다. 이후 컴퓨터는 다음 수행할 명령과 코드에 항상 접근할 수 있어야 한다. 이에 따라 해당 정보는 ROM에 저장되어 있으며 이는 하드 드라이브가 고장나더라도 접근할 수 있다.

 

 

이처럼 ROM에서 얻는 정보들을 BIOS 라고 부르며 BIOS는 부트 프로세스를 실행시키는 명령어 집합을 포함하고 있다. 해당 집합 명령어들을 펌웨어(Firmware)라고 한다. Linux와 Mac도 BIOS를 사용하지만 개방 펌웨어, 개방 BIOS등 BIOS보다 뛰어난 확장성 펌웨어 인터페이스가 개발되었다. (EFI:Extensible firmware interface)

 

2. 부트 진행 과정(Boot process)

부트 진행 과정은 부트스트랩이라고도 한다.(바이오스 가동과 OS 초기화를 포함)

부트 절차는 컴퓨터와 BIOS, H/W 제조사의 특성에 따라 약간의 차이는 있지만 대부분 아래와 같은 순서에 다라 부팅이 진행된다.

 

  • 컴퓨터 파워버튼 동작시 부트로더 초기화
  • POST(Power On Self Test) 수행
  • 다른 BIOS들의 가동을 위한 초기화 수행
  • BIOS 접근을 위한 비밀키 입력 요구(생략 가능)
  • ROM에 BIOS가 정상적으로 올라왔는지 메모리 테스팅 및 파라미터 세팅
  • 플래그 및 플레이 디바이스 초기화
  • DMA(Direct Memory Access) 채널을 위한 자원들과 IRQ(Interrupt Request) 할당
  • 부트 디바이스 확정 및 초기화
  • OS 초기화

3. POST(Power On Self Test)

POST는 성공적인 부팅 및 적정 수행의 확인을 위해 하드웨어에 대해 행하는 테스트를 의미한다.

 

  • BIOS의 완벽한 보전을 확인(ROM 상태 확인)
  • 주기억장치 위치(Address) 결정 및 크기(Size) 결정(RAM)
  • 시스템 버스와 시스템 디바이스 시작
  • 요구되는 다른 BIOS들의 시작 허용(비디오 또는 그래픽카드 등)
  • 사용자에게 BIOS 시스템 구성 페이지에 접근할 수 있는 권한 부여
  • 부트 디바이스 위치 및 부트 파일을 가진 디바이스 찾기
  • 운영체제에 의해 요구되는 그 외 작동 준비(setup) 관련 작업의 수행

 

 

'Public > 운영체제' 카테고리의 다른 글

[운영체제] 스풀링(SPOOLing) 이란?  (0) 2020.08.18

+ Recent posts