컴퓨터 시스템 구조(Computer-System Structure)
컴퓨터 시스템 구조(Computer-System Structure)

• 컴퓨터를 켜면 부트스트랩 프로그램(Bootstrap program)이라는 초기화 프로그램이 실행된다. 이 프로그램을 컴퓨터의 ROM(Read-Only Memory)이나 EEPROM(Electrically Erasable Programmable Read-Only Memory)에 저장되어 있으며, 주로 펌웨어(Firmware)라고 불린다.
부트스트랩 프로그램 실행 -> 부트로더 실행(Boot loader) -> 운영체제 실행(Ram에 적재)
->운영체제가 첫번째 프로세스 실행(리눅스의 경우 Init) -> 다음 사건(event)를 기다린다
부트스트랩 프로그램에 대해 영문으로 정리된 페이지 - https://www.tutorialspoint.com/what-is-a-bootstrap-program
Interrupt Handling

• 소프트웨어는 시스템 콜(System Call)이라 불리는 기능을 통해 인터럽트(Interrupt)를 발생시킬 수 있다. 하드웨어 역시 시스템 버스를 통해 cpu로 신호를 보내 인터럽트를 발생시킬 수 있다.
• 현대의 운영체제는 인터럽트 드라이븐(Interrupt Driven) 방식으로 인터럽트가 발생하면 그에 맞춰 행동을 취한다. ISR(인터럽트 서비스 루틴 Interrupt Service Routine) 호출
저장장치 구조 및 저장 장치 계층
• 컴퓨터가 프로그램을 수행하려면 주 메모리(Random-Access Memory, RAM)가 필요. 주 메모리는 cpu가 직접 접근할 수 있는 유일한 저장 장치이다.
• 주 메모리는 모든 데이터를 저장하기에는 너무 작으며, 전원이 공급되지 않으면 내용이 잃어버리는 휘발성이 단점.
• 주 메모리의 확장으로 보조 저장 장치를 제공. 보조 저장 장치는 대량의 데이터를 영구히 보존할 수 있어야 한다.

• 캐싱은 주 메모리의 데이터를 캐시에 일시적으로 보관하는 것. 캐시는 속도가 굉장히 빠르기 때문에 캐시를 잘 사용한다면 시스템 속도를 높일 수 있다.
• 캐시 크기는 한정되었기 때문에 관리 방법이 중요(LFU, LRU 활용)
• 데이터를 불러올 때 먼저 캐시 안에 데이터가 있는지 확인한다. 있으면 캐시의 데이터를 사용하고 없으면 메인 메모리에서 정보를 가져오고 동시에 캐시에도 적재한다.
• Cache Coherency and Consistency (통일성과 일관성) : 멀티 태스킹 환경에서 다수의 캐시가 있을 때 캐시 A의 데이터 내용이 변했을 때 캐시 B의 내용도 동시에 변경시켜야 하는 일관성 문제가 존재한다. 분산환경 시스템에서는 더욱 복잡해진다.
입출력 구조 (I/O Structure)
• 범용 컴퓨터 시스템은 공통 버스에 의해 연결된 여러 개의 장치 제어기와 하나의 CPU로 구성.
• 운영체제는 각 장치를 통제하기 위한 장치 드라이버(Device Driver) 를 가지고 있다.
• 입 출력 장치는 서비스가 필요할 때 인터럽트를 발생시키며 운영체제는 어떤 장치가 인터럽트를 발생시켰는지 확인한 뒤 처리한다.
• DMA 구조 : 과거에는 장치 데이터를 처리하기 위해 CPU를 거쳐 메모리에 로드하는 방식을 사용했으나, CPU 자원이 너무 많이 소모되기 때문에 이젠 DMA(Direct Memory Access)를 사용.
• DMA는 장치와 메모리를 직접 연결하는 방식으로, 버스가 지원하는 기능이다. 메모리의 일정 부분은 DMA에 사용될 영역으로 지정되며, DMA를 제어하는 컨트롤러는 DMA 컨트롤러라고 부른다. 참고로 CPU를 거치는 방식은 PIO(Programmed I/O)라고 부른다. 장치의 데이터는 장치 컨트롤러에 의해 직접 메모리에 전달되며, CPU에서는 데이터 이동이 완료되었다는 인터럽트만 한 번 일어난다. 이렇게 하면 결과적으로 CPU가 하는 일이 줄어드니까 성능이 좋아진다.
댓글
댓글 쓰기