[Operating Systems] Resource Management

dandb3·2023년 3월 3일
0

Operating system

목록 보기
3/31

Process Management

  • process는 resource들을 필요로 한다. 뿐만 아니라 다양한 초기화 데이터들도 필요로 한다.
  • program : disk 안에 담긴 파일같은 passive entity 이다.
  • process : active entity.
  • program counter : 다음에 실행할 명령을 가리킨다.
  • process management를 위해 operating system이 해야하는 일들
    • user/system process들을 만들고 지우기
    • Scheduling processes and threads on the CPUs
    • Suspending and resuming processes
    • Providing mechanisms for process synchronization
    • Providing mechanisms for process communication

Memory Management

  • Main memory : large array of bytes
  • 각각의 byte는 고유한 주소를 갖고 있다.
  • CPU는 instruction-fetch cycle동안 main memory에서 명령을 읽어오고, main memory에다가 데이터를 쓰거나 읽는다.
  • Main memory는 CPU가 직접 접근할 수 있는 유일한 큰 저장소이다.
  • ex) I/O call로 정보를 읽어오고 싶을 때 main memory로 먼저 데이터를 옮기고 CPU가 그것을 처리하는 식으로 동작한다. 마찬가지로 instruction 또한 main memory에 존재해야 한다.
  • Memory management를 위해 operating system이 해야하는 일들
    • 메모리의 어느 부분이 사용되고 있고 어떤 프로세스가 사용하고 있는지 체크
    • 메모리 할당 / 할당해제 관리
    • 어느 프로세스나 데이터가 memory로 들어가고 나올 것인지 확인

File-System Management

  • file?
    • storage device의 physical properties를 추상화해서 만든logical storage unit
  • file management
  • file management를 위해 operating system이 해야하는 일들
    • 파일 만들고 삭제
    • 파일을 정리하기 위한 directories를 만들고 삭제
    • 파일과 디렉토리를 다루기 위한 기본적인 기능들 지원
    • 파일들을 mass storage에 mapping하기
    • 파일들을 nonvolatile한 stable storage media에 백업하기

Mass-Storage Management

  • Secondary storage management를 위해 operating system이 해야하는 일들
    • Mounting and unmounting
    • Free-space management
    • Storage allocation
    • Disk scheduling
    • Partitioning
    • Protection
  • tertiary storage devices는 느리지만 용량이 커서 거의 접근하지 않는 데이터들을 보관하는데에 쓰이게 된다.

Cache Management

  • cache?
    • main memory와 같은 storage system에 정보가 저장되어 있다.
    • 사용될 때, 더 빠른 storage system인 cache에 복사된다.
    • 정보가 필요할 때, cache에 있는지 우선 확인하고, 있다면 cache에서 바로 사용한다. 없다면, 직접 source로부터 가져오고, 곧 필요할 것이라고 예상해 cache에 복사해 둔다.
    • 내부의 programmable registers 또한 high-speed cache를 지원하기도 한다. programmer가 정보를 저장하기 위해 main memory를 쓸 지, register를 쓸 지 결정한다.
    • 나머지 cache들은 hardware에 의해 동작한다. 예를들면, 대부분의 system들은 instruction cache를 가져서 다음 명령을 저장한다.
    • cache는 제한된 크기를 가지고 있기에, cache management도 중요한 문제이다.
    • storage hierarchy에서의 다른 level간의 information교환은 explicit하거나 implicit 하게 hardware design이나 controlling operating-system software에 의해 결정된다.
    • 예를 들면, cache -> CPU & register는 보통 hardware function이고 operating system이 관여하지 않는다. 반대로, disk -> memory는 operating system에 의해 전달된다.
  • hierarchical storage structure에서는 같은 데이터가 storage system의 서로 다른 level에 존재할 수도 있다.

    - ex) 정수 A의 값을 1 증가시킨다고 하자. A는 B라는 파일 안에 존재하고, B는 hard disk 안에 존재한다. 우선 A라는 값을 읽어오기 위해서 I/O operation을 통해 A가 있는 disk block을 main memory에 복사한다. 그 후 A값을 cache와 내부 레지스터로 복사해 온다. 그 다음 내부 레지스터에 있는 A 값이 증가하고 나면, 여러 곳에 존재하는 A값은 다 똑같지 않게 된다. internal register에서 값을 다시 hard disk로 옮기고 나서야 A값은 다 똑같게 된다.
    - ex) multiprocessor environment에서 문제가 복잡해지는데, 각 CPU는 local cache를 가지고 있고, 모두 다 A라는 값에 접근한다고 하면 어떤 CPU는 증가하기 전 A의 값, 어떤 CPU는 증가한 후의 A 값을 가지게 된다. 이러한 문제는 'cache coherency'라고 불리며, hardware level에서 해결되어야 한다.
    - ex) distributed environment의 경우 서로 다른 컴퓨터에서 비슷한 일이 일어난다. 추후에 자세히..

I/O System Management

  • I/O subsystem의 구성 요소
    - A memory-management component that includes buffering, caching, and spooling
    - A general device-driver interface
    - Drivers for specific hardware devices
    오직 device driver만이 그것이 할당된 device의 특징을 알고 있다.
profile
공부 내용 저장소

0개의 댓글