운영체제

컴퓨터 시스템의 기본 구성

  • 하드웨어(CPU, 메모리, I/O 장치)
  • 운영체제
  • 응용 프로그램
  • 사용자(사람, 기계, 컴퓨터)

운영체제의 목적 : 유저 프로그램을 구동, 컴퓨터 시스템을 사용하기 쉽게 한다.(GUI등) 하드웨어를 효율적으로 사용할 수 있게 한다.(한정적인 CPU나 메모리 등의 자원들을 효율적이고 공정하게 배분하는 역할)

운영체제의 정의 : " "
커널 + 시스템 프로그래밍
커널 : 컴퓨터에서 항상 실행되고 있는 프로그램
시스템 프로그래밍 : 모든 프로그램을 포함. 시스템 운영과 관련있는 응용프로그램

운영체제의 역할

  • 리소스 할당의 주체
    모든 리소스를 관리. 자원에 대해 충돌되는 요청 사이에서 효율적이고 공정하게 사용 리소스 분배
  • 제어프로그램
    프로그램 실행을 제어, 오류 및 부적절한 사용 방지
    하나의 메모리를 시스템 버스를 이용하여 CPU, I/O장치, disk, graphic adapter(monitor)가 경쟁하여 메모리는 사용하게 되는데, 모두 효율적으로 잘 사용 할 수 있도록 관리하는게 운영체제의 역할이다.

부트스트랩(Bootstrap, 부팅) : PC의 전원을 누른 직후부터 운영체제가 메모리에서 동작하기 시작할때 까지의 모든 과정
1) 사용자가 PC 전원버튼 누르면 메인보드에 전력이 공급
2) 비휘발성 메모리인 ROM에 저장되어 있는 BIOS루틴(펌웨어)이 시작된다.
3) BIOS가 셀프테스트를 통해 주변 하드웨어를 체크한다. 여기서 문제가 생긴다면 비프음이 발생하거나 블루스크린 발생 하는 등의 일이 발생한다. BIOS가 체크할때가 문제가 생긴다면 OS가 문제라기 보단 하드웨어가 문제일 가능성이 크다.
4) 하드웨어 체크 후 부팅정보가 저장되어 있는 MBR(Master Boot Record) 을 읽음. Master Partition Table이라고도 함
5) 휘발성 메모리인 RAM에 Bootloader를 적재한 후 디스크에 있던 OS(커널)코드를 복사하여 메모리에 적재. 초기화한다.

컴퓨터 시스템 동작 전제

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

인터럽트 : CPU가 프로그램을 구동중일때, 입출력이나 예외상황이 발생하여 처리가 필요한 경우에 CPU에 신호를 주는 것. 우선순위가 더 높은 작업이 있을때 쟤 먼저 처리해~ 하고 인터럽트를 건다.

  • 하드웨어 인터럽트
    : 하드웨어가 발생시키는 인터럽트(전원 이상, 오버플로우..). CPU외의 하드웨어가 CPU에게 신호를 보내야 할 경우 발생
  • 소프트웨어 인터럽트
    : 소프트웨어가 발생시키는 인터럽트. 사용자 프로그램이 인터럽트 하는 경우 발생. (svc-supervisor call).
    그외 외부 인터럽트/내부 인터럽트, exception 인터럽트 /IO 인터럽트 등 다양하게 구분할 수 있다.

인터럽트 발생시 시스템 동작
인터럽트 발생시 CPU는 동작을 중지하고, 인터럽트가 요청한 주소값으로 CPU가 할일 변경. 인터럽트로 인해 중단된 명령어를 기억하고 있다가(PC-Program Counter에 적재) 인터럽트가 종료되면 PC에 있는 중단된 명령어를 다시 수행


패스트 캠퍼스 환급 챌린지 1일차! 완료!
주말 포함하여 매일매일 강의를 듣고 블로그에 글을 써야한다니.. 내가 과연 30일동안 하루도 빠지지 않고 할 수 있을지 벌써부터 걱정이다. 하지만 이런거라도 안하면 강의만 쌓여가고 내 머리에는 쌓이지 않을 것 같아서.. 나머지 29일도 화이팅!!

https://bit.ly/3FVdhDa
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

profile
Devops, AWS에 관심있어요.

0개의 댓글