운영체제 정리-1

beenyyy·2023년 4월 28일
post-thumbnail

<운영체제란?>

• 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중개자 역할을 하는 프로그램
• 하드웨어를 효율적으로 사용, 필요한 자원 할당
• 메모리 내 커널 영역(운영체제) / 사용자 영역(프로그램)

<운영체제 정의>

리소스 할당자: 메모리 자원 관리, 공정한 자원 사용에 대한 상충되는 요청 사이에서 결정 / CPU 자원 할당
프로그램 컨트롤러: 오류 및 부적절한 사용을 방지하기 위해 프로그램 실행 제어

<OS의 역사>

•1950~1960:

  • 하드웨어는 비싸고 사람은 싸다
  • 하드웨어를 효율적으로 사용
  • 펀치 카드 / 자기 테이프 / 배치 모니터

•1960~1990:

  • 하드웨어는 싸고 사람은 비싸다
  • 사람들의 시간을 효율적으로 사용 / PC OS

•1990~:

  • 내장된 멀티미디어 지원 OS
  • 클라우드 / 가상화

•현재:

  • 크고, 복잡하고, 예측하기 어려운 코드

<컴퓨터 시스템 4가지 기본 구성요소>

• CPU(프로세서,처리기)
• 주기억장치(MM)
• 입출력 모듈
• 시스템 버스

<시스템 상호 연결> - 폰노이만 구조

시스템 버스:

  • 주요 구성 요소를 연결 / 데이터가 지나다니는 통로
  • 데이터 버스 / Command/Address bus 로 구분

버스 분류:

  • 버스 arbiter(중재자)
  • 버스 master: 버스 요청 신호를 보내 버스 트랜잭션을 시작. ex) CPU, DMA 컨트롤러
  • 버스 slave: 마스터의 명령을 받아 서비스를 제공
    ex) 메모리, 디바이스 컨트롤러

<I/O 작업>

• I/O 컨트롤러: CPU 명령에 따라 I/O작업 수행
• I/O 컨트롤러 레지스터:
-데이터 레지스터(입력, 출력)
-제어 레지스터(제어, 상태)

• I/O 작업은 CPU에 의해 시작된다.

<Polling I/O vs. Interrupt-driven I/O>

Polling I/O:
I/O가 완료되었는지 확인하기 위해 계속 I/O 상태 레지스터를 확인. CPU자원 낭비. 입출력 처리 시간 큼
Interrupt-driven I/O:
인터럽트(방해)를 원인으로 작업을 완료함을 CPU에 알림 / 입출력 관리자의 신호를 받음

<Memory-mapped I/O vs. Port-mapped I/O>

• Memory-mapped I/O:
-접근 시 같은 인스트럭션 사용
-동일한 주소 공간을 사용하여 메모리와 I/O 모두 주소 지정
• Port-mapped I/O:
-접근 시 별도의 인스트럭션 필요
-I/O 장치에 별도의 I/O 주소 공간 사용

<DMA(직접 메모리 액세스)>

• 디바이스 컨트롤러가 CPU의 개입 없이 버퍼 저장소와 메인 메모리 간에 데이터 블록을 직접 전송할 수 있도록 함
• 데이터를 바이트 단위가 아니라 블록 단위로 전송
• 메모리 속도에 가까운 속도로 정보를 전송할 수 있는 고속 I/O 장치에 사용 / CPU자원 절약

<Interrupts(인터럽트) 메커니즘>

-방해 Interrupt
-인터럽트 아키텍처는 인터럽트 된 명령의 주소를 저장해야 함
-Trap or exception: 오류 또는 사용자 요청으로 인해 발생하는 소프트웨어 생성 인터럽트
-OS is interrupt driven

<인터럽트 처리>

ISR (interrupt 서비스 루틴)


<OS 설계>

  • not “solvable”. 해결할 수 없음

OS 설계 원칙:
• 메커니즘과 정책 분리
• Policy: 수행할 작업 결정
• 메커니즘: 작업을 수행하는 방법 결정
-정책 결정이 변경될 경우 분리를 통해 최대한의 유연성 제공

<OS 구조>

• 간단한 구조 MS-DOS: 싱글 작업 / 모듈로 나누지 X
• 초기 UNIX: 프로그램과 커널로 구현
• 계층적 접근: 위아래 단계끼리만 소통. 오류를 찾아내기는 쉬움.
  (아래-하드웨어/ 최상위-사용자 인터페이스)
• 마이크로커널 구조:
-커널에서 불필요한 구성 요소 제거 / 사용자 수준 프로그램
-프로세스, 메모리, 통신 관리 등만 커널에서
-오버헤드로 성능에 악영향
-안전성과 보안성은 높음
-메세지를 통해 간접적으로 상호작용
• 모듈:
-적재 가능 커널 모듈(LKM)
-필요에 따라 로드 / dynamic linking / 자주 사용하는 서비스들을 커널에 포함시킴

<이중 모드>

① 커널
• 운영체제 핵심 기능 담당
② 사용자 인터페이스
• 그래픽 유저 인터페이스
• 커맨드 라인 인터페이스

profile
📚beenyyy의 개발공부

0개의 댓글