[OS] 1-2.

chaewon·2023년 3월 2일
0

Operating System

목록 보기
2/7

✔︎ OS(운영체제)를 보는 관점

: main computer에 user 여러명, 리소스도 여러개 라는 전제 바탕

✔︎ OS

  • 관점은 효율성 (빠르게), 공정성 (공평하게, 우선순위, 대등하게)의 문제

[관점1]
resource allocator 라고 보는 관점

  • resource = CPU, memory, I/O device, (+ storage)를 OS가 관리하는
  • CPU, memory -> computing resource

[관점2]
control program (제어 프로그램)으로 보는 관점
➠ 무엇을 제어하나?
1) 프로그램 실행, 관리
2) I/O device 관리 (모든 I/O의 function은 OS의 한 부분!)
이 두 개를 적절히 (안전하게) 한다.

Q. 컴퓨터의 전원을 켜면 컴퓨터가 무엇을 하나?
A. Booting

✔︎ bootstrap program

: power on 했을 때 자동으로 실행되는 program.

  • program은 hard disk에 있는데 OS는 직접 접근 X (-> 누가 접근?)
  • ROM, EPROM처럼 power off를 해도 지워지지 않는 곳에 저장되어 있음.
    ✦Cf. firmware
  • ex. 임베디드 시스템 (like 자동차)도 파워를 켜도 날아가지 않고 무엇인가 실행되도록 되어 있음.
  • OS kennel이 사용자의 입력을 기다리고 있음.

♥︎ bootstrap program이 하는 일
1) system 초기화 (화면을 재점검해서 구상하는 일을 함. 연결된 디바이스 체크 등)
2) OS kernel을 load 하고 실행
✦kernel : 사용자가 아무것도 안 해도 얘는 돌아가고 있음. OS의 main program.


✔︎ 용어 정리

✷ kernel: computer가 power-on 되면 항상 실행 상태에 있는 프로그램.


✔︎ CPU

  • 연산을 담당하는 장치
  • CPU의 연산기능은 I/O 기능과 동시 수행이 가능하다 !!!

✔︎ controller

  • 각종 device가 연결되어 있는데, controller가 달려 있음!
  • controller에 자체 processing 기능이 있음
  • main memory에 있는 프로그램을 실행하지만 프로그램의 전형적인 형태는 연산형태와 I/O 기능의 반복
  • 여기서 I/O는 memory access를 직접 함
  • CPU 연산과 동시에 진행될 수 있음

cf. printer 모델을 바꿔도 device 드라이버만 깔면 OS-device의 인터페이스를 해결해줌!


interrupt

  • 정상적인 일을 수행하는데 급한 일이 생겨서 일(1)을 어딘가에 저장해두고 일(2)를 먼저 수행하다가 완료되면 다시 일(1)로 돌아오는
  • 유용성
    : 어떤 정상적 작업을 할 때 다른 작업의 필요를 트리거 하는 싱크가 외부에서 일어나도록 하는 것.
    (다른 일을 먼저 처리해야 한다는 것은, 일의 우선순위를 감시하는 프로그램이 있어야 한다는 말임. 그런데 이것은 H/W에 이미 있음!)
    : 필요한 것을 알리게 하는 개념.

[1] interrupt vector

  • interrupt 주소를 나타내는 배열
  • Interrupt Survice Routine(ISR)의 주소를 모아놓은 memory 특수 영역
  • intterrup가 걸리면 주소가 어디인지부터 먼저 알아냄.
  • 지워질 수 있는 값

[2] interrupt handling

~ interrupt가 걸리면
0) 다른 interrupt를 막음
1) 현재 상태 어딘가에 저장
2) interrupt 판독
3) vector로 주소 얻어서 그 위치로 jump
4) 판독하고 수행
5) 다시 돌아와서 수행

➠ interrupt handling 과정은 현재 수행하는 것보다 먼저 처리해야 하는 일이 발생했다 라고 보는 관점이 있음.


✔︎ 용어 정리

✷ trap
✷ exception
➠ S/W interrupt, 각각의 특이한 상황으로 고려함


✔︎ OS는 현대에서 모두 interrupt driven이다.

  • system call방식 -> 필요할 때 불러서 사용하기 위함.
    ex. BIOS (ROM에 위치)

✔︎ storage (기억장치)

[1] 용량단위

  • byte (8 bit) -> 기본
  • 2^10 -> K
  • 2^20 -> M (100만)
  • 2^30 -> G (100억)
  • 2^40 -> T
  • 2^50 -> P (Peta byte, 1000T)

[2] storage class

  • 위로 갈수록 CPU랑 가까움

  • 위로 갈수록 속도 빠름,비쌈

  • 밑으로 갈수록 용량 크고 저렴

  • SSD ~ magnetic tapes는 CPU에서 볼 때 보조기억장치
    ➠ 전원 Off해도 사라지지 않음.

✔︎ register

  • CPU에서 직접 access 가능, 속도 빠름

✔︎ cache

  • register 급의 저장장치를 마치 memory처럼 쓰는 것
    (b/c. 속도를 높이기 위해)

✔︎ main memory

  • RAM (전원을 끄면 사라진다), CPU에 직접 access함.

✔︎ solid-state disk (SSD)

  • hard disk보다 빠른 보조기억장치

✔︎optical disk, magnetic tapes

  • hard disk의 용량이 커지면서 사용을 잘 안 하게 됨.

✔︎ 용어정리

✷ caching
: 하위 device처럼 논리적으로 쓰는데 사실상 상위 device를 사용하는 것
b/c. 속도 개선을 위해서
ex. RAM disk

✷ process
: 실행 상태 중인 program
ex. 작업 관리자 누르면 지금 실행중인 program을 다 보여주는 것
(program은 hard disk에 있는 어떤 file)

✷ multi-process
: 어떤 시스템에서 수행중인 시스템 여러개가 같이 돌아가는 거

✷ processor
: CPU라고 생각, 하드웨어임.

✷ multi-processor
: CPU가 여러개 있는 시스템

  • parallel system이라고도 함.
    ➠ system의 처리능력 향상
  • tightly-coupled system
    : CPU가 여러 개 밀착된 거
  • distributed system (~loosely coupled system)
    : 독립적인 컴퓨터가 network로 연결 되어 있는 것.

[multi processor의 장점] = CPU를 여러 개 두면 나타나는 이점

  • increase throughput (처리량) ➠ 성능 향상
  • economy of scale
    : 규모를 늘릴 때 경제적이다.
    : 독립적인 singlr processor을 여러 개 두는 것보다 경제적!
    (처리 효과는 같아도 경제적임)
  • reliablity
    : 한 개가 고장일 때 다른 processor가 대체할 수 있음.
    cf. graceful degradation ➠ 성능 저하가 급격하게 일어나지 X
    fault tolerant ➠ 고장이 났을 때 견디는 (내고장성)

✔︎ clustered system

: 여러 개의 system을 결합하여 한 개의 고성능 (대용량)의 system으로 사용하고자 하는 개념
(storage 고민 때문에)

✔︎ multi-programing (다중 프로그램)

: computer system의 한 순간에 실행 상태에 있는 프로그램을 여러 개 두는 개념

  • CPU utilization 증가 목적 (system 관점)
  • I/O가 일어나는 동안 CPU가 놀지 않도록 하기 위해서

✔︎ time-sharing (시분할)

: 아주 짧은 주기의 단위로 나눠서 번갈아 실행하는 것

  • CPU가 여러개의 작업을 짧은 주기로 번갈아 가면서 하는 것.
  • 조금씩 조금씩 진전시켜 주는 것
  • n/1의 속도를 가진 CPU가 해주는 느낌

✔︎ multi-tasking

: 여러 개의 작업을 동시에 실행시키는

  • 작업을 여러 개 동시에 할 수 있다.

✔︎ OS의 기능

  • program management
  • memory management
  • storage management
    ➠ 이 세개는 나중에 배울 예정.

- protection(보호)
: user, process로부터 system resource를 보호

- security (보안)
: system을 외부, 내부 공격으로부터 보호하는 것
ex. 바이러스, worms 보호, 명의도용 불법사용 방지

0개의 댓글