ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • day02 #2. 컴퓨터 시스템의 구조
    CS/운영체제 2022. 4. 9. 22:40


    1. 운영체제의 분류
    1) 동시작업 가능 여부
    : 단일 작업 ex) MS-DOS프롬프트 상에서는 한 명령의 수행을 끝내기 전 다른 명령 수행 불가
    : 다중 작업 ex) UNIX, MS Windows등에서는 한 명령 수행이 끝나기 전 다른 명령 수행 가능

    2) 사용자 수

    3) 처리 방식
    : 일괄 처리(batch processing)  - 작업 요청의 일정량을 모아 한번에  처리. 작업이 완전 종료될 때까지 대기해야 함
    : 시분할(time sharing)  - 일괄 처리 시스템에 비해 짧은 응답 시간. 컴퓨터 처리를 일정한 시간 단위로 분할해 사용
    - ex) UNIX 등. 
    : 실시간(Realtime OS) - 정해진 시간 안에 어떤 일이 반드시 종료됨이 보장되어야 함(데드라인)
    - ex) 경성 실시간 시스템 - 원자로 제어, 미사일 제어 등
            연성 실시간 시스템 - 동영상 끊김 등(초당 n프레임의 데드라인)

    2. 운영체제의 예
    1) 유닉스(UNIX)
    : 서버를 위한 운영체제로서 등장 - 복잡
    : 높은 이식성
    : 코드의 대부분이 C언어
    : 최소한의 커널 구조
    : 복잡한 시스템에 맞게 확장이 용이
    : 소스 코드 공개
    : 프로그램 개발에 용이
    : 다양한 버전(System V, FreeBSD, SunOS, Solaris, Linux)

    2) DOS
    : MS사에서 1981년 IBM-PC를 위해 개발
    : 단일 사용자용 운영체제

    3) MS Windows
    : 네트워크 환경 강화
    : DOS용 응용 프로그램과의 호환성
    : 불안정성

    4) Handled device를 위한 OS
    : PalmOS, Pocket PC, Tiny OS

     

     


    3. Mode bit
    : 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 보호장치 필요
    : Mode bit을 통해 하드웨어적으로 두 가지 모드의 operation 지원
    1. 사용자 모드 - 사용자 프로그램 수행
    2. 모니터 모드 - OS코드 수행 (=커널 모드, 시스템 모드)
    : 보안을 해칠 수 있는 주요 명령어는 모니터 모드에서만 수행 가능한 '특권명령'으로 규정
    : interrupt나 Exception 발생시 하드웨어가 Mode bit을 0으로 바꿈
    : 사용자프로그램에게 cpu를 넘기기 전에 Mode bit을 1로 세팅
     
    4. Timer
    : 정해진 시간이 흐른 뒤 운영체제에게 제어권이 넘어가도록 인터럽트를 발생시킴
    : 타이머는 매 클럭 틱 때마다 1씩 감소
    : 타이머 값이 0이 되면 타이머 인터럽트 발생
    : cpu를 특정 프로그램이 독점하는 것으로부터 보호
     => 타이머는 Time sharing을 구현하기 위해 널리 이용됨


    5. 컴퓨터 시스템 구조
    : 시스템콜 - 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널함수를 호출하는 것
    : 인터럽트 - 인터럽트 당한 시점의 레지스터와 프로그램 카운터를 save한 후 cpu의 제어를 인터럽트 처리 루틴에 넘긴다
    - 넓은 의미  : 하드웨어 인터럽트(하드웨어가 발생시킨 인터럽트)
        : trap(소프트웨어 인터럽트) - Exception 프로그램이 오류를 범한 경우
     - System call 프로그램이 커널 함수를 호출하는 경우
    - 인터럽트 벡터 : 해당 인터럽트의 처리 루틴 주소를 가지고있음
    - 인터럽트 처리 루틴(인터럽트 핸들러)
    - 현대 운영체제는 인터럽트에 의해 구동됨

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

    1) 동기식 입출력(synchronous I/O) - 싱크로=동시에, 시간적으로 잘 맞게, 동기화
    : I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
    : 구현방법
    # 1.  I/O가 끝날 때까지 CPU를 낭비시킴 -> 매시점 하나의 I/O만 일어날 수 있음
    # 2. I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음 
    -> I/O 처리를 기다리는 줄에 그 프로그램을 줄세움
    -> 다른 프로그램에게 CPU를 줌

    2) 비동기식 입출력
    : i/o가 시작된 후 입출력 작업이 끝나길 기다리지 않고 제어가 사용자 프로그램에 직접 넘어감

    => 1), 2) 모두 I/O의 완료는 인터럽트로 알려줌

    7. DMA(Direct Memory Access)
    : 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
    : cpu의 중재 없이 디바이스 컨트롤러가 디바이스의 buffer storage의 내용을 메모리에 block 단위로 직접 전송
    : 바이트 단위가 아니라 block 단위로 인터럽트를 발생시킴

    'CS > 운영체제' 카테고리의 다른 글

    day04 #스레드  (0) 2022.05.04
    day03 - 프로세스 관리  (0) 2022.04.15
    day01 개괄  (0) 2022.03.28

    댓글

Designed by Tistory.