ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS 스터디 - 컴퓨터 시스템의 구조
    CS📟 2022. 10. 14. 17:42

    * 이 글은 반효경 교수님의 수업을 듣고 정리한 글입니다. 정리하는 과정에서 틀린 점이 있거나 잘못 이해한 부분이 있다면 수정하겠습니다.

     

    왜 소프트웨어를 공개한것일까?

    • 소프트웨어는 독점체제가 가능한 시장이다.
    • 일등이 시장이 장악해버리면 그 아래에 시장을 장악하지 못한 소프트웨어들이 소스를 공개한다.
    • 그러면 오픈소스들이 퍼지게 되면서 시장에 침투하게 된다.
    • 공유의 힘!

     

    복습

     

    운영체제란 무엇인가?

    • 자원을 관리하고, 사용자가 편하게 사용할 수 있게 해주는 소프트웨어
    • 좁은 의미
      • 메모리에 항상 상주함(커널)
    • 넓은 의미
      • 커널뿐 아니라 각종 주변 시스템 유틸리티를 포함
    • 목적
      • 자원의 효율적 관리
        • 하드웨어 자원과 소프트웨어 자원
      • 최대한의 효율을 내야 하지만 지나친 차별도 배제
      • 메모리의 적절한 분배 

     

    운영 체제의 분류
    • 단일 작업
      • 한 번에 하나의 작업만 처리한다 (옛날)
    • 다중 작업
      • 동시에 두 개 이상의 작업이 가능하다 (현재)
      • 메모리 사용과 분배에 관련한 추가 이슈
    • 단일 사용자
      • MS-DOS, MS Window
    • 다중 사용자
      • Linux, Uix, NT server
      • 보안 관련 추가 이슈 발생

     

    처리 방식
    • 일괄 처리(batch processing)
      • 작업 요청의 일정량 모아서 한꺼번에 처리
      • 작업이 정말 종료될 때까지 기다려야 함
      • 이용자의 편의보다는 한 번에 모아서 처리하는 방식
      • 초기 Punch Card 처리 시스템
    • 시분할(time sharing)
      • 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
      • 일괄처리에 비해 짧은 응답 시간
    • 실시간 
      • 정해진 시간 안에 작업이 반드시 종료됨이 보장되어야 하는 시스템을 위한 OS
      • 예) 원자로, 미사일 제어
        • 개념 확장
          • Hard realtime system
          • Soft realtime system
            • 프레임을 지켜야 하는 영상처리 
    • Multiprocessor
      • 하나의 컴퓨터에 여러 개의 CPU가 존재

     

    운영체제의 예
    • 유닉스
      • 대부분 C로 작성
      • 어셈블리어를 사용하지 않고 C를 만들어서 사용
      • 높은 이식성
      • 최소한의 커널
      • 복잡한 시스템에 맞게 확장 용이
      • 초기에는 공개
      • 다양한 버전 존재
    • DOS
      • MS에서 1981년 IBM-PC를 위해 개발
      • 단일 사용자용
      • 단일 사용자용이었기 때문에 메모리 관리 능력 한계
    • MS Window
      • MS사의 다중 작업용 GUI 기반 운영 체제
      • Plug and Play, 네트워크 환경 강화
      • DOS용 응용 프로그램과 호환성 제공
      • 불안정성
      • 풍부한 지원 소프트웨어

     

    유닉스와 Window는 시작점부터 달랐기 때문에 여러 차이점이 존재하게 되었다.

     

    그 외

    PalmOS, Pocket PC, Tiny OS

    Android, IOS

    안드로이드는 리눅스 커널 위에서 돌아가서 플랫폼이라고도 부른다

     

    내가 운영체제라고 생각하고 수업을 듣자

     

    구조

     

    • I/O 장치들에는 디바이스 컨트 롤라는 작은 CPU들이 있다.
    • CPU는 연산하는 기능이 있고, 연산을 하기 위해서 필요한 작업 공간이 메모리
    • 디바이스 컨트롤러도 로컬 버퍼라는 공간이 있다.

     

    Mode bit

    CPU를 운영체제에서 사용할 때는 믿고 맡길 수 있지만, 사용자 프로그램은 악의적인 동작들이 있을 수도 있기 때문에 그걸 구분하는 것

    운영체제가 사용 중일 때는 0 사용자 프로그램이 사용중일때는 1

    Mode bit이 1이면 위험한 기계어(특권 명령)는 차단

    특권 명령을 사용자 프로그램이 사용하려고 하면 운영체제로 다시 CPU가 넘어감

     

    interrupt/Exception
    • Exception는 예외 상황
      • interrupt는 인터럽트 라인에 들어온 요청을 확인해서 요청이 있으면 운영체제가 CPU를 점유
    • Timer
      • 운영체제가 CPU를 뺏어올 수 없기 때문에 시간을 저장해놓는 부분
      • CPU의 독점 방지
      • 시간이 다되면 타이머 인터럽트 발생
    • 시스템 콜
      • I/O 장치를 사용하는 명령은 특권 명령이라서 운영체제에 I/O 장치를 사용해달라고 요청하는 것
      • 요청을 하고 싶은 프로그램이 스스로 인터럽트를 걸어서 운영체제로 CPU이용권을 넘김
      • 소프트웨어 인터럽트, 트랩이라고도 함 (업무의 연장이기 때문에)
    • 디바이스 컨트롤러
      • I/O 장치에 요청이 오면 받고, 작업이 끝나면 인터럽트를 거는 작은 CPU
    • 펌 웨어
      • I/O장치들의 동작을 기계어로 입력되어 있는 프로그램
    • 인터럽트 벡터
      • 해당 인터럽트의 처리 루틴 주소를 가지고 있음
      • 인터럽트 처리 루틴
      • 해당 인터럽트를 처리하는 커널 함수
    • CPU
      • register
        • 연산을 저장하는 작은 부분
      • 프로그램 카운트
        • 다음에 실행할 메모리의 주소를 가지고 있음
        • 인터럽트가 들어오면 운영체제 위치로 변경(Mode bit이 0으로 변경)

     

    동기식 입출력과 비동기식 입출력

     

    • 동기식 입출력 (synchronous I/O)
      • I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감

     

    • 비동기식 입출력 (asynchronous I/O)
      • I/O 결과를 모르는 상태에서 다른 작업을 진행

     

    DMA (Direct Memory Access)

     

    빠른 입출력 장치들은 잦은 인터럽트를 유발해서 오버헤드를 발생시킬 수 있기 때문에 I/O 작업이 끝난 후 디바이스 버퍼에 있는 데이터들을 메모리에 올려놓고 인터럽트를 걸어준다

     

    저장 장치 계층 구조

    캐싱을 사용

     

     

    'CS📟' 카테고리의 다른 글

    [CS] 운영체제 - CPU 스케줄링  (0) 2022.11.03
    [CS 스터디] OS - Process  (0) 2022.10.22
    [CS 스터디] 운영체제 개요  (1) 2022.10.07
    [TCP/IP] CH 6 보안  (2) 2022.09.17
    [TCP/IP] 네트워크 인터페이스 계층  (0) 2022.09.04
Designed by Tistory.