[OS] Caching, Direct Memory Access, Multiprogramming, Multitasking

Ko Hyejung·2021년 10월 10일
0

Operating Systems

목록 보기
3/26

Caching

  • Use of high-speed memory to hold recently-accessed data.
    고속 메모리를 사용하여 최근에 액세스한 데이터를 보관
  • Requires a cache management policy.
    캐시 관리 정책이 필요
  • Caching introduces another level in storage hierarchy.
    This requires data that is simultaneously stored in more than one level to be consistent.
    캐싱은 스토리지 계층에 또 다른 수준을 도입
    이렇게 하려면 두 개 이상의 수준에 동시에 저장된 데이터가 일관성이 되어야 함

Migration of A from Disk to Register

  • Multitasking environments must be careful to use most recent value, no matter where it is stored in the storage hierarchy.
    멀티태스킹 환경은 스토리지 계층에 저장된 가장 최근의 값을 사용할 때 주의해야 함
  • Multiprocessor environment must provide cache coherency in hardware such that all CPUs have the most recent value in their cache.
    멀티프로세서 환경은 모든 CPU가 캐시에서 가장 최근의 가치를 가질 수 있도록 하드웨어에 캐시 일관성을 제공해야 함

  • Distributed environment situation even more complex. Several copies of a datum can exist.
    분산 환경 상황은 더욱 복잡. 기준의 복사본이 여러 개 존재할 수 있음

Direct Memory Access Structure

  • Used for high-speed I/O devices to transmit information at close to memory speeds.
    고속 I/O 장치에서 메모리 속도에 가까운 속도로 정보를 전송하는 데 사용
  • Device controller transfers blocks of data from buffer storage directly to main memory without CPU intervention.
    장치 컨트롤러는 CPU 개입 없이 버퍼 스토리지에서 메인 메모리로 데이터 블록을 직접 전송
  • Only one interrupt is generated per block, rather than the one interrupt per byte.
    바이트당 하나의 인터럽트가 아닌 블록당 하나의 인터럽트만 생성

How a Computer System works

Concept of Multiprogramming


Multiprogramming needed for efficiency.
멀티프로그래밍은 효율성을 위해 필요

  • Single user cannot keep CPU and I/O devices busy at all times.
    1인 사용자가 CPU와 I/O 장치를 항상 사용할 수는 없습니다.
  • Multiprogramming organizes jobs (code and data) so CPU always has one to execute.
    멀티프로그래밍은 작업(코드 및 데이터)을 구성하므로 CPU는 실행할 작업을 항상 가지고 있습니다.
  • A subset of total jobs in system is kept in memory.
    시스템의 전체 작업 중 일부가 메모리에 저장됩니다.
  • One job selected and run via job scheduling.
    job scheduling을 통해 하나의 작업을 선택하여 실행합니다.
  • When it has to wait (for I/O for example), OS switches to another job.
    (예: I/O) 대기 시 OS는 다른 작업으로 전환됩니다.

Concept of Multitasking

+) preemptive multitasking 선점형 멀티태스킹

동시에 여러 개의 프로그램을 실행하는 멀티태스킹을 하면서
운영체제가 각 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행 중 문제가 발생하면
해당 프로그램을 강제 종료시키고 모든 시스템 자원을 반환하는 방식
-> 하나의 응용 프로그램이 CPU를 독점하는 것을 방지할 수 있어 시스템 다운 현상 없이 안정적인 작업이 가능해진다.

Timesharing (multitasking) is logical extension in which CPU switches jobs so frequently that users can interact with each job while it is running, creating interactive computing.

Timesharing(멀티태스킹)은 CPU가 작업을 너무 자주 전환하여 실행 중인 각 작업과 상호 작용할 수 있는 논리적 확장으로 interactive 컴퓨팅을 생성합니다.

  • Each user has at least one program executing in memory -> process.
    각 사용자는 메모리에서 실행 중인 프로그램을 하나 이상 가지고 있습니다. -> process.
  • If several jobs ready to run at the same time -> CPU scheduling.
    여러 작업을 동시에 실행할 준비가 된 경우 -> CPU 예약.
  • If processes don’t fit in memory, swapping moves them in and out to run.
    프로세스가 메모리에 맞지 않을 경우 swapping을 사용하여 프로세스를 실행하거나 실행시킵니다.
  • Virtual memory allows execution of processes not completely in memory.
    가상 메모리를 사용하면 프로세스가 메모리에 완전히 실행되지 않습니다.

0개의 댓글