운영체제 2장 - 디버깅, 생성, 시스템 부팅
2.8 운영체제 디버깅
- 디버깅 : 오류를 발견하고 수정하기
- 장애(Failure) 분석
- Log 파일 : 프로세스가 실패하면 오류 정보를 기록
- Core dump 파일 : 오류 발생 프로세스의 메모리 내용을 저장
- 초기 컴퓨터에서 메모리를 core라고 불렀다고 함
- crash dump 파일 : 커널 장애시에 커널 메모리 내용을 저장
- 커널 장애를 Crash 충돌이라고 부름
- 성능 조정
- 병목 지점을 제거하여 시스템 성능을 최적화
- window task manager와 같은 성능 측정 및 표시 유틸리티 사용
- DTrace
- 사용자 프로세스와 커널에 동적으로 탐색점을 추가할 수 있는 유틸리티
2.9 운영체제 생성
- 운영체제 생성(SYSGEN)
- 배포 : 디스크. CD-ROM, DVD-ROM, ISO 형태, USB 등
- 하드웨어 구성 정보를 파일을 통해 읽거나 직접 검사하여 얻음
2.10 시스템 부트
- Bootstrapping(booting)
- 커널을 적재하여 컴퓨터를 시작하는 절차
- Bootstrap loader
- 커널을 찾아서 메모리에 적재하고 수행하는 일을하는 ROM에 저장된 코드
- 대개 시스템 진단 작업을 수행하고, 시스템 전체를 초기화 한 후 운영체제를 시작함
- Firmware
- 부트스트랩 코드의 변경이 가능하도록 ROM 대신 EPROM에 저장함
- 하드웨어와 소프트웨어의 중간 특성을 가져서 펌웨어라고 부름
- 실행 속도가 RAM에서 실행하는 것보다 느려, 빠른 수행을 위해 RAM에 복사하여 실행됨
- 운영체제는 보통 2차 저장장치에 저장되지만, 일부 시스템은 운영체제 전체를 firmware에 저장함
시스템 부트 과정
- Bootstrap loader : 부트디스크의 부트 블럭을 메모리에 적재 후 실행
- Simple boot code : 나머지 부트 스트랩 프로그램에 대한 디스크 주소와 길이만 알고있는 간단한 코드
- Complex boot code : 파일 시스템을 탐색하여 OS 커널을 찾고, 메모리에 적재하여 실행(GRUB)
- Operating system kernel : 운영체제가 커널을 실행하고 프로세스를 시작함
- UEIF(Unified Extensible Firmware Interface)
- BIOS를 대체할 목적으로 개발됨
- 파일 시스템을 지원하여 boot selector에 의존 없이 OS 커널 부팅 가능
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.