Fascination
article thumbnail

[컴퓨터구조/운영체제] 컴퓨터 전공 수업 10분으로 압축 (컴퓨터구조 + 운영체제)

인프런/기술노트 - 컴퓨터 구조부터 클라우드 빅데이터까지 / 진로 고민, 취업 상담


# 폰노이만 구조

  • CPU ↔ Memory ↔ DISK
  • 하드웨어(CPU, Memory, Disk) ↔ I/O

폰노이만 구조

 

# CPU

  • ALU + 레지스터
  • ALU: 수학적 산술 연산을 하는 것이 있음
  • 레지스터: 메모리에 있는 명령들이 올라와서 계산을 통해 연산을 하게 됨
  • 캐시메모리: 임시저장공간

 

# Memory

  • 저장공간
  • Memory에 컴퓨터 내 프로그램을 모두 올릴 수 없다
  • 어떤 프로세스에 어떤 데이터를 적재시킬지가 관리 대상 → 메모리 관리

 

# DISK

  • 저장소
  • 파일에 얼마나 빠르게 접근할 것인가 → 디스크 관리

 

# I/O

  • 키보드 마우스 모니터와 같은 입출력 장치

 

# 컴파일

  • 우리가 작성한 코드(with python, C++, Java …)는 컴퓨터가 바로 이해할 수 없음
  • 컴파일을 통해 코드가 컴퓨터에서 실행할 수 있는 .exe, .dll 확장자를 가진 프로그램으로 바뀌는 것임
    • dll: dynamic linked library
    • 이렇게 만들어진 프로그램은 DISK에 저장됨

 

# 실행파일(.exe)의 구성 및 실행

  • 코드 + 리소스
  • 명령어들 중에 일부 처리하려고하는 명령어(코드) 및 참고할 수 있게 도와주는 리소스가 메모리에 올라가게 되는 것이며, 메모리는 이것들을 다시 CPU로 보내고 이후 CPU에서 처리함

 

# process

  • DISK에서 Memory로 코드 및 리소스가 올라가는 순간
  • 즉, 프로세스는 프로그램이 실행되고 있는 것이다
  • 프로세서도 있는데 이는 CPU를 가리키는 말이다
  • 프로세스는 한개의 프로그램만 실행되는 것이 아니라, 여러 개의 프로그램을 동시에 띄울 수 있으므로 프로세스의 개수는 여러 개이다

 

# processor

  • 위에서 동시에 프로그램 여러개를 띄울 수 있다고 했지만, 이것은 사용자가 바라보는 입장이고 실제로는 모든 프로세스에게 한번씩 실행할 기회를 주는 것이며 기회를 주는 시간이 짧아 사람들 입장에서는 그 간극을 느끼지 못한다 ⇒ 시간을 나누어 기회를 주는 것을 시분할이라고 한다
  • 요즘은 멀티코어를 사용하기 때문에 프로세서도 여러개이다
  • 스케줄링: 프로세스에게 얼마만큼의 시간을 줄 지 그리고 많은 프로세스에게 우선 순위를 매기며 관리하는 것
    • 선점형 스케줄링: 우선 순위가 높은 프로세스가 먼저 선점하는 방식
    • FCFS: First Come Fisrt Service
    • etc..

 

# Cost와 Speed

  • CPU 쪽으로 갈수록 cost는 높고, Speed도 빠르다
  • DISK 쪽으로 갈수록 cost가 낮고, Speed도 느리다

 

# OS

  • 메모리 관리, 디스크 관리 등을 담당
  • 하드웨어(CPU, 메모리, 디스크)가 잘 동작되게 함
  • 여러가지 프로그램들이 동시에 최적의 성능을 낼 수 있게 메모리나 CPU를 사용해서 프로그램을 구동시키는 역할
profile

Fascination

@euna-319

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!