Base/OS, Network

운영체제

findmypiece 2021. 4. 2. 22:25
728x90

사전 용어 정리

프로그램 : 명령어 집합으로 컴파일된 결과물뿐만 아니라, 프로그래머가 작성한 소스 코드까지도 포함한다.

소프트웨어 : 프로그램뿐만 아니라 CD, 설명서, 제품 포장 등 패키지 전체를 뜻하기도 한다.

프로세스 : 동작 중인 프로그램을 의미한다.

스레드 : 프로세스 안에 하나 이상 존재할 수 있다. 명령어가 CPU를 통해서 수행되는 객체의 단위이다.


컴퓨터는 크게 CPU, 메모리, 디스크로 구성된다. 이러한 물리적 요소들을 하드웨어라고 하는데

CPU는 연산을, 메모리는 순간 기억을, 디스크는 저장하는 기능을 각각 수행하게 된다.

프로그램이 수행되기 위해서는 이런 하드웨어들이 적절하게 데이터틀 주고 받으며

논리적인 일들을 해야 하는데 하드웨어들은 그냥 각자 자신의 역할만 수행할 뿐이다.

운영체제는 이러한 하드웨어의 동작을 적절히 조합해서 논리적인 작업을 수행하고

그 과정에서 각 자원이 효율적으로 사용될 수 있도록 관리하는 역할을 수행한다.

또한 이를 위한 인터페이스를 제공해서 별도의 프로그램 혹은 소프트웨어에서

적절하게 하드웨어의 자원을 사용할 수 있도록 해준다.

CPU 관리

CPU는 한번에 한가지 일 밖에 수행하지 못한다.

그렇게 때문에 일의 처리속도가 곧 CPU의 성능이 되고 이러한 처리속도의 단위가 헤르쯔(Hz)이다.

물론 요즘은 멀티코어시스템이 사용되기 때문에 한번에 다수의 일을 처리할 수도 있다.

다만 멀티코어라고 하더라도 어쨌든 한번에 처리할 수 있는 일의 갯수는 제한되고

멀티코어로 보면 설명이 난해할 수 있기 때문에 여기에서는 싱글코어 환경을 기준으로 설명하도록 한다.

여기에서 말하는 "일"이란 "프로세스 내부의 스레드"를 의미한다.

Window 운영체제를 기준으로 동영상플레이어와 인터넷브라우저는 각각의 프로세스이다.

다만 그 안에는 영상재생, 즐겨찾기 등의 구체적인 작업이 존재하고 CPU는 이런 단위로 일을 처리하기에

"프로세스 내부의 스레드" 라는 표현이 맞다.

어쨌든 CPU는 한번에 한가지 일만 처리할 수 있는데도

우리는 동영상플레이어로 동영상을 보면서 인터넷브라우저를 마음대로 사용할 수 있다.

이는 동시에 수행되는 것이 아니라 운영체제에서 여러개의 스레드를

우리가 인식할 수 없는 빠른 속도로 번갈아가면서 수행한 결과이다.

운영체제에서는 이를 위해 스레드 간 스케줄링 작업이 필요하고 이게 곧 운영체제의 CPU관리이다.

 

CPU 스케줄링

CPU는 한번에 제한된 갯수의 스레드만 처리할 수 있기 때문에 이에 대한 스케줄링 작업이 필요하다.이것...

blog.naver.com

메모리 관리

컴퓨터에서 어떠한 프로그램을 수행하기 위한 명령어나 데이터는 디스크의 프로그램 파일에 포함되어 있다.

운영체제에서는 프로그램이 수행될 때 이러한 자원의 일부를 메모리 상에 올려놓고

CPU에서 이를 사용할 수 있게 한다. 디스크에서 직접가져와서 사용하는 것보다 비교적 빠르기 때문이다.

CPU의 처리속도 만큼이나 메모리의 용량도 컴퓨터의 성능에 중요한 역할을 하게 된다.

메모리 용량이 높다는 것은 한번에 올려야할 데이터가 많은 프로그램(예를 들어 고사양 게임)을

실행시킬 수 있다거나 여러개의 작업을 동시에 많이 할 수 있다는 것을 의미한다.

추가적으로 이러한 메모리를 CPU에 상주시키면 더 빠르게 접근할 수 있는데 이를 캐시메모리라 한다.

디스크 관리

알다시피 메모리는 휘발성이다. 메모리 상의 데이터는 프로세스가 수행 중일 때만 존재하고

프로세스가 종료되면 그 데이터는 사라진다.

프로그램을 종료한 뒤에도 데이터를 유지하고 싶다면 결국 디스크에 데이터를 저장해야 한다.

운영체제는 디스크의 데이터를 파일이라는 논리적 단위로 제공하여 데이터를 읽거나 쓸 수 있도록 제공한다.

728x90

'Base > OS, Network' 카테고리의 다른 글

port 확인 및 열기  (0) 2021.06.04
Linux crontab  (0) 2021.04.16
CPU 스케줄링  (0) 2021.04.02
L4, L7 스위치 정리  (0) 2021.04.02
Linux crontab  (0) 2021.04.02