컴퓨터 시스템의 기본 구성

하드웨어

  • CPU, 메모리, I/O장치

운영체제(OS)

  • Windows, Mac

응용 프로그램

사용자


운영체제란?

1. 정의

  • 커널 : 컴퓨터에서 항상 실행되는 하나의 프로그램
    +
  • 시스템 프로그래밍 : 모든 프로그램을 포함함, 시스템의 운영과 관련있는 응용 프로그램

2. 목적

  • 유저 프로그램의 구동과 유저 문제 해결을 쉽게 함
  • 컴퓨터 시스템을 사용하기 쉽게 함
  • 컴퓨터 하드웨어를 효율적으로 사용할 수 있게 함

3. 하는 일

  • 리소스 할당의 주체
    모든 리소스를 관리
    자원이 충돌되는 요청 사이에서 효율적이고 공정하게 사용 리소스를 분배

  • 제어 프로그램
    프로그램 실행을 제어, 오류 및 부적절한 사용을 방지


컴퓨터 시스템의 작동 과정

부팅(부트스트랩)

  • 전원버튼 -> 운영체제가 메모리에서 동작하기까지의 과정
  1. 메인보드에 전력 공급

  2. ROM, EEPROM에 저장된 BIOS 루틴이 시작

  3. BIOS는 셀프 테스트를 통해 주변 하드웨어를 체크

  4. MBR에 존재하는 부팅 정보를 읽어오는 부트스트랩 실행

  5. RAM에 Bootloader를 적재
    디스트에 있는 OS(커널)코드를 복사하여 메모리에 적재
    초기화

• 입출력 장치, CPU는 동시 실행 가능
• 각 장치 컨트롤러는 특정 디바이스 유형을 담당. 로컬 버퍼 존재
• CPU는 메인 메모리 - 로컬 버퍼간 데이터 이동
• 입출력은 장치에서 컨트롤러의 로컬 버퍼로 전달
• 장치 컨트롤러는 인터럽트를 발생시켜 CPU에 작업 완료를 알림

인터럽트란?

  • CPU가 프로그램을 구동중일 때 입출력이나 예외상황이 발생하여 다른 처리가 필요한 경우에 CPU에 보내는 신호

하드웨어 인터럽트

  • 하드웨어가 발생시키는 인터럽트
    CPU외의 하드웨어가 CPU에게 신호를 보내야 할 경우 발생

소프트웨어 인터럽트

  • 소프트웨어가 발생시키는 인터럽트
    사용자 프로그램이 인터럽트하는 경우 발생
    예외상황이나 supervisor call

인터럽트 발생시 동작

  • 인터럽트는 서비스 루틴으로 제어 전송(?

  • 인터럽트에 의해 중단된 명령어 주소를 반드시 저장(다시 할거라)

  • 인터럽트 서비스 이후, 저장된 복귀 주소를 프로그램 카운터에 적재하여 재개

  • 실제 과정 타임라인

  • 인터럽트 driven 입출력 사이클

profile
안녕하세요. Chat JooPT입니다.

0개의 댓글