폰 노이만 구조 컴퓨터 시스템을 이루는 3대 구성이 있다면 CPU, 메모리 그리고 디스크이다. 여기에 I/O까지 추가된다면 그것을 컴퓨터를 이루는 기본 골격이 된다.
CPU : 계산 역할함 프로세서 라고도함 => 구성요소 (ALU(수학적 산술 담당), + 레지트터(메모리 명령들 여기로 올라와 계산 수행됨))메모리 : 임시 저장공간DISK : 저장소
만약 개발자가 c, java, c++ 같은 언어로 컴파일(컴퓨터가 이해할수 없어서 기계어로 바꿔주는 동작)을 통해. exe ,. dll 같은 실행 파일을 만들었다고 하자 일단 이 실행파일은 디스크에 저장이 된다 실행파일의 구성은 [코드, 리스소(자원)] 이다 이것들 중 코드 일부와 필요한 리소스가 메모리로 올 라가는 데 메모리에서는 일부 코드, 리소스 = 처리 명령어들이 집합해 있다 이걸 CPU에 ALU, 레지스터를 통해 처리한다이때 실행파일로 저장되어 있던 프로그램이라는 것이 이 메모리에 올라가는 순간을 프로세스라고 함 즉 다시 말해 프로그램이 실행되고 있는 것을 프로세스라고 말함 이 프로세스는 컴퓨터에서 굉장히 여러 개 존재함 컴퓨터에서는 1개 프로그램만 실행되는 게 아닌 우리가 띄운 프로그램 구글, 유튜브, 포토샵.. 등등 모두 동시에 실행되고 있는 것임 엄밀히 말하면 동시에 실행된다는 말이 이상한데 그 이유는 수많은 프로세서들이 실행되고 있는데
프로세서(CPU)가 하나라고 가정했을 때 이 프로세서들에게 한 번씩에 기회를 주는 것임 즉 엄청나게 많은 프로세스들이 있지만 CPU상에서는 한계의 명령만 처리되고 있다고 보면 되는 것임
CPU
=> ALU + 레지스터
=> 프로세서 1, 2, 3, 4, 5........................
이 프로세서들이 특정 시간만 큼에 CPU에 배정을 받게 됨 즉 일부가 실행되고, 실행되고, 실행되고 반복
하나하나 하나 굉장히 빠른 속도로 실행돼서 동시에 실행되는 거 같이 보임 이 시간적으로 나는 것을 시분할이라고 함
이 프로세스에게 얼마만큼 시간을 줄지 그리고 이 프로세스 중에서 어떤 것들을 먼저 할지 이런 것들에 대한 관리를
하게 되는데요 이걸 스케줄링이라고 함 CPU 스케줄링 굉장히 중요한 부분임 이렇게 CPU 스케줄링을 하는 방식 중에
윈도우가 있고 또 많은 OS들이 살아남은 대표적 방식은 선점형 방식임 선점형이라는 건 이 프로세스 중에 우선순위가 높은 것이 먼저 CPU을 차지하는 방식임 즉 선점 (먼저 손든놈, 더 중요한놈 ) 이외에도 Fcfs 먼저 들어온 애를 서브하자 라는 것도 있음
메모리는 저장공간에 대한 관리가 핵심 왜냐면 cpu, 메모리, 디스크 순으로 저장공간에 대한 가격은 낮아지지만
cpu 쪽으로 갈수록 비싸짐 이 메모리라는 것도 고비용 장치인데 프로그램에 모든 데이터를 메모리에 한꺼번에
다 올릴 수가 없기 때문에 일부분이 올라오게 되고 일부분은 다시 내려가게 됨 이런 식으로 한 개에 프로그램이 아니라
여러 프로그램이 동시에 실행되기 때문에 어떤 프로세서에 어떤 데이터들을 적재시킬지가 관리 대상에 되는데요 그것이 메모리 관리 교체 알고리즘에 되겠습니다 이게 주로 메모리에서 처리되는 일임 어떤 데이터가 나가고 들어올지에 대한 일을 하게 됨
디스크 관리는 디스크를 얼마나 빠른 속도로 파일을 액세스 할 것인가 라는 부분임
이렇게 CPU, 메모리, 디스크 여기에 I/O 까지 해서 대표적인 컴퓨터에 구조가 되겠고 위에서 말한 CPU의 스케줄링
메모리, 디스크 관리를 하는데 OS(운영체제) 임 운영체제가 하는 일은 이러한 하드웨어 CPU 메모리 디스크를 잘 동작될 수 있게 하는 역할을 하고 그리고 여러 가지 프로그램들이 동시에 최적에 성능을 낼 수 있겠음 이 메모리나 CPU를 사용해서 프로그램을 구동될 수 있게 해주는 역할을 함
'자료구조, 운영체제, 네트워크, 시스템설계 > IT 기술노트' 카테고리의 다른 글
개발자 developer vs 엔지니어 engineer (0) | 2021.11.04 |
---|