[컴퓨터 구조] 컴퓨터 구조 & 운영체제

NAEMAMDAEROG·2021년 11월 29일
0

폰노이만 구조

  • 컴퓨터는 크게 CPU, MEMORY, DISK, I/O(키보드, 마우스, 모니터와 같은 입출력장치)로 구성돼있다.

CPU

  • ALU (산술 연산) + 레지스터
  • 메모리에 있는 명령들이 올라와서 계산을 통해서 연산을 한다.
  • MEMORY에 있는 명령어가 CPU에서 처리된다.
  • 프로세서 : 프로그램을 띄어주는 역할.
  • 1개의 CPU만 있다면 많은 프로세스가 있는 상황에서 동시에 프로세스들이 실행되고 있는 것처럼 보이지만 프로세스가 1개 실행되고, 다음 거 실행되고. 너무 빨라서 동시에 실행되고 있는 것처럼 보일 뿐이다.
  • 시분할 : 프로세스들의 일부, 일부를 시간으로 나눈 것.
  • 스케쥴링 : 프로세스에게 얼마만큼의 시간을 줄지, 뭘 우선적으로 할지 관리하는 것.
  • 선점형 스케쥴링 : 우선순위가 높은 프로세스가 CPU를 선점하는 것.

MEMORY

  • 임시 저장공간
  • 코드의 일부(필요한 리소스도 같이)가 MEMORY로 올라온다.
  • 프로세스 : DISK에 있는 프로그램이 MEMORY에 올라가는 과정. 프로그램이 실행되면 프로세스다.
  • 스레드 : 프로세스를 돌림.
  • 프로그램 내에서 스레드를 2개 이상 돌리면서 자원의 접근을 동시에 할 때, 동시에 할 수 없다. (프로그램 내에 A,B 스레드가 있다고 가정하고) A 스레드가 동작하면 B 스레드는 기다려야 한다. A 스레드가 동작하고, B 스레드가 동작하면서 A 스레드가 썼던 걸 덮어쓰거나 지울 수 있기 때문에 스레드 동기화가 필요하다.
  • 즉, 프로그램이 실행되고 있는 걸 프로세스라고 한다.
  • DISK로 갈수록 저장공간에 대한 COST는 낮아지지만, CPU로 갈수록 올라간다.
  • 프로그램의 모든 데이터를 MEMORY에 올릴 수 없기 때문에 일부분만 올리고, 일부분은 DISK로 내려간다.
  • 메모리 관리 : 여러 개의 프로그램이 동시에 실행되기 때문에 어떤 프로세서에 어떤 프로세스를 적재시킬지 관리(교체 알고리즘).

DISK

  • 저장소
  • DISK에 저장된 실행 파일은 코드와 리소스로 구성되어 있다.
  • 디스크 관리 : 디스크를 얼마나 빠른 속도로 파일을 엑세스 할 것인가.
  • 파일이 저장되면 껐다 켜도 저장되어 있다.
  • 가상 메모리 : DISK와 MEMORY 사이에서 중간 역할. DISK에 프로그램을 읽는데 오래 걸리기 때문에 MEMORY처럼 보이는 걸 DISK 상에 미리 만들어 놓은 것이다. 프로그램에서 필요한 데이터들을 미리 가지고 기다리는 파일. 가상 메모리를 잡아놓으면 속도가 빨라진다.

EX)

  • 개발자가 C, JAVA, C++ 같은 프로그래밍 언어로 개발을 한다.
  • 이 언어들은 컴퓨터가 이해할 수 없으므로 컴퓨터가 이해할 수 있게끔 컴파일 된다.
  • .exe, .dll과 같은 실행 파일로 변환되어 DISK에 저장된다.

운영체제

  • 스케쥴링, 메모리 관리, 디스크 관리의 모든 것

출처 : https://www.youtube.com/watch?v=J06SirxZG7M
출처 : https://www.youtube.com/watch?v=uMyKBYF48nY

profile
Blockchain & Programming 공부 기록

0개의 댓글