본문 바로가기

OS

[운영체제] 1. What is an OS?

  1. OS의 의무
    1. 다른 기기와의 상호작용 가능하게
    2. 프로그램이 메모리 공유할 수 있게
    3. 프로그램들 실행하기 편하게 하기
  2. OS가 무슨 일을 하는지
    1. resource allocator
    2. control program
  3. OS가 어떻게 돌아가야 하는지
    1. Virtualization
      1. 각 프로세스들이 자신만의 주소 공간이 있다고 믿도록 가스라이팅하는 것
      2. 주소 공간과 physical address에 매핑하는 것을 OS가 하고, 한 프로세스가 다른 프로세스에 침범하지 못하게 하는 것도 OS가 함
    2. Concurrency
      1. 스레드 간 공유되는 영역인 critical section을 처리하는 연산이 atomic하게 되는가?
      2. 우리 쓰레드가 독점적으로 critical section 처리할 수 있도록 OS가 lock도 걸어줌
    3. Persistence
      1. data가 persistent하게 하드웨어와 소프트웨어에 저장되어야 함→ write 도중 system crush : journaling or copy-on-write
      2. → file I/O system call
  4. 설계 목표
    1. 추상화 잘되게 : User가 와~context 스위치 되어서 내가 지금 프로세스 쓰는구나~ 이렇게 느낄 수는 없잖아,, 사용자가 쉽고 편하게 쓸 수 있도록 잘 감싸기
    2. 높은 performance 제공: application 잘 돌게 하려는 목적
    3. Protection : application 서로 방해하지 않도록
    4. reliablilty : non-stop으로 실행되어야 혀
반응형