사용자와 컴퓨터 하드웨어 사이에서 중간 다리 역할
Application - middleware - OS(system software)
OS는 이 하드웨어 구성 요소들을 어떻게 핸들링하는지를 결정한다.
ex)
그러니까 중앙 관리자? 생각하면 좋을 것 같다. PM같은 느낌적인 느낌?
레지스터보다 위에 CPU가 있다. 레지스터는 CPU 안에 위치한다.
레지스터란?
- 극히 소량의 데이터나 처리중인 중간 결과를 일시적으로 기억해 두는 고속의 전용 영역, 현재 수행하는 값 기억
그냥 단순하게 말해서 CPU 가까운데 저장해두고 빨리 빨리 끌어 쓰기 위해서 쓰는 메모리라는 뜻
자기 테이프 아래에 이제 외장하드, 클라우드 서버가 있다고 보면 되겠다.
상위 계층으로 올라갈수록 값도 비싸다. 빠르고 작으면 역시 비싼 법이다.
cache
: CPU와 메모리 사이에 자주 쓰는 것을 가까운 곳에 저장하기 위해 사용하는 메모리
메인 메모리에 있는 데이터를 캐시 메모리에 불러와 두고, CPU가 필요한 데이터를 캐시에서 먼저 찾도록 하면 시스템 성능을 향상시킨다.
뭐야 레지스터랑 캐시랑 하는 일이 똑같네?
Q) 레지스터와 캐시의 차이?
A) 캐시는 cpu와 별도로 있는 공간이며, 메인 메모리와 cpu 간의 속도 차이를 극복하기 위한 것이라는 것이고
레지스터는 cpu 안에서 연산을 처리하기 위하여 데이터를 저장하는 공간
그러니까
레지스터는 지금 쓰는 변수의 값을 계속 빠르게 쓰게 저장소에 따로 저장,
캐시는 초고속으로 사용할 수 있도록 미리 메모리 백업?이라고 보면 좋을 것 같다.
CPU - IO - Memory
현재 무엇을 할 것인가를 CPU가 결정한다,
메모리에서 값 가져오고 다시 메모리에 저장한다(Bus선을 거쳐서)
이런 구조를 가지면 I/O가 놀면서 조금 비효율적으로 되는데 그래서 DMA가 있다.
multitasking과 혼용해서 사용.
실제 동시에 프로그램이 실행되는 것은 아니지만 왔다갔다하면서 그렇게 보이도록 한다.
모드를 2개로 나누어 운영하는 것
Q) 뭐야 왜 나눠요?
A) OS는 컴퓨터의 모든 것을 관장한다. 전부 다 건드릴 수 있는 권한이 있음.
그래서 건드릴 수 있는 영역을 제한해서 유저가 잘못 건드려도 컴퓨터의 동작이 멈추지 않게 한다.
OS가 멈추게 한다!
시간에 민감한 OS 무조건 몇 초 이내에 결과 내야 하는 경우