1. CPU
프로세서. ALU(수학적 산술 연산 계산을 해줌.)+ 레지스터로 구성. 메모리에 있는 명령들이 올라와서 계산을 통해서 연산을 해준다. 레지스터와 cpu 메인 메모리 사이에 캐시라는 저장공간이 있다.
2. MEM
메모리. 임시 저장공간을 뜻한다.
3. DISK
저장공간.
4. I/O
입출력 장치. 키보드와 마우스 같은 것들을 뜻한다.
5. 스케쥴링
개발자는 c, java, c++ 등으로 개발. 컴파일 되는 과정으로 .exe, .dll가 만들어진다. 여기서 개발자들이 프로그램을 만들기 위한 언어는 컴퓨터가 이해할 수가 없다. 컴퓨터는 binary파일들로 바뀌게 된다. 이 과정을 컴파일이라고 한다.
실행파일이 disk에 저장되면. 코드와 리소스로 구성이 되어있다. 이 일부 코드가 실행이 되면 메모리로 올라오게 된다. 이때 필요한 리소스도 메모리로 올라간다. 실행이 됐을 때 명령어들 중에 일부가 cpu에 올라가서 해당하는 명령어를 처리한다. 프로그램이라는 것이 메모리에 올라가는 순간을 프로세스라고 한다.
이 프로세스들은 여러개 존재하며, 프로세스들이 여러개가 실행이 된다. 이 프로세스들에게 한 번씩 기회를 주는데, cpu에서는 한 개의 명령을 실행. 프로세스들이 특정 시간 만큼의 cpu에 배정을 받게 된다. 이것을 시간으로 나눠서 하나하나 다 나눠서. 굉장히 빠른 속도로 실행되기 때문에 동시에 실행되는 것 같다. 이 시간적으로 나눈 것을 시분할이라고 한다. 이 프로세스에게 얼마만큼의 시간을 줄지. 프로세스 중에서 어떤 것들을 먼저 할지 이런 것들에 관한 관리를 하게되는데 이런걸 스케쥴링이라고 한다.
많은 os들이 살아남은 대표적인 스케쥴링이 선점형 스케쥴링(preeptive)이다. 프로세스 중에 우선순위가 높은 것을 먼저 cpu에 차지하는 게 선점이다. 먼저 들어온 요청부터 하자 =>FCFS. 선점형 방식에 의해서 우선순위가 높은 프로세스부터 먼저 권한을 준다.
6. 메모리관리 교체 알고리즘
메모리는 저장 공간에 대한 관리가 핵심이된다. 왜냐하면 디스크쪽으로 갈수록 싸지고, cpu쪽으로 갈수록 비싸진다. 프로그램의 모든 데이터를 메모리에 한꺼번에 올릴 수 없기 때문에. 일부분이 올라오게 되고, 또 일부분이 다시 내려가게된다. 한 개의 프로그램이 아니라 여러개의 프로그램이 동시에 실행되기 때문에 어떤 프로세서에 어떤 데이터들을 적재시킬지 어떤 데이터가 나올지가 관리 대상이 되는데 그것을 메모리 관리 교체 알고리즘이라고 한다.
7. 디스크 관리
디스크 관리는 디스크를 얼마나 빠른 속도로 파일을 엑세스할 것인지 라는 부분을 이야기한다.
8. 정리, OS의 역할
cpu 스케줄링 + 메모리 관리 + 디스크 관리를 하는 것이 OS이다. 운영체제가 하는 일은 이러한 하드웨어들을 잘 동작될 수 있게 하는 역할을 수행한다. 그리고 여러가지 프로그램들이 동시에 최적의 성능을 낼 수 있게끔. 메모리와 cpu를 사용해서 프로그램이 구동될 수 있게끔 해준다.
출처: https://www.youtube.com/watch?v=J06SirxZG7M
'CS 지식' 카테고리의 다른 글
웹 서비스 아키텍처의 발전 (네트워크 관점) (0) | 2023.08.01 |
---|---|
데이터 직렬화(Serialization)의 정의와 용도 (0) | 2022.10.13 |
캐시(Cache) 간단히 설명 (0) | 2021.07.10 |
프로그램 - 프로세스 - 프로세서의 차이점. (간략 정리) (0) | 2021.07.10 |