컴퓨터 구조
프로그래밍 - 어떤 Input 을 올바른 Output 으로 만드는 것 개발자들은 C, Java, C++ 과 같은 언어를 통해 컴파일을 하게 되고 .exe, .dll 등이 만들어 진다.
컴퓨터는 .exe, dll(dynimic linked library) 파일로 변경되게 되고 이게 컴파일이라고 한다.
컴퓨터 구조
폰노이만
CPU <-IO-> Memory <-IO-> Disk
CPU
- 계산을 처리한다.
- ALU + 레지스터는 연산을 처리한다.
- 레지스터는 캐시메모리라는 것이 있다.
- 시분할
P1(프로세서) P2 P3 P4 여러개의 프로세스를 시간으로 나눈 것을 말한다.- 우선순위나 시간단위의 관리를 CPU 스케쥴링이라 한다.
- 스케쥴링 방식
- 선점형 스케쥴링(preemptive) 방식이 오늘 날에도 많이 사용된다.
- 우선순위가 높은 프로세스부터 더 많은 권한을 준다.
- 선점형 스케쥴링(preemptive) 방식이 오늘 날에도 많이 사용된다.
Memory
- 임시 저장 공간
cost⬆️ -> cost⬇️ speed⬆️ <- spped⬇️ - 실행된 프로그램의 명령어 중에 처리하려는 명령어는 CPU가 처리하게 된다.
- Disk에 있던 프로그램이 실행되면서 메모리에 올라오는 것을 프로세스라 한다.
- 프로세스가 된 프로그램들은 사실상 컴퓨터에 많은 프로그램이 동시에 존재한다.
- 사실상 동시는 맞지 않다.
- CPU 프로세서가 하나라고 가정 했을 때, 프로세스에 한번씩의 기회를 준다.
- 사실상 동시는 맞지 않다.
- 메모리는 고비용의 장치다.
- 일부는 메모리에 올라오고, 일부는 메모리에 내려가야 한다.
- 따라 어떤 메모리는 올라와야 하고, 어떤 메모리는 내려가야 하는지 메모리 관리 교체 알고리즘이 필요하다.
- 일부는 메모리에 올라오고, 일부는 메모리에 내려가야 한다.
Disk
저장소
- .exe 파일을 실행하면 코드와 리소스를 담고 있다.
- 프로그램을 실행하면 일부 코드와 리소스가 메모리에 저장된다.
OS 가 하는 일
여러가지 프로그램들이 동시에 최적의 성능을 낼 수 있도록 메모리, CPU를 관리해준다.
댓글남기기