[운영체제] Overview

2023. 5. 19. 15:59·CS/OS

컴퓨터 시스템의 기본 구성요소

  • 처리기 (Processor): 중앙처리장치(CPU)
  • 주기억장치 (Memory): 휘발성 메모리, 셧다운 시 메모리 내용이 사라짐
  • 입출력 모듈 (I/O module): 컴퓨터와 외부 환경 간 데이터 전송
  • 버스 (Bus): 처리기, 메모리, 입출력 모듈 간의 데이터 전송을 위한 통로

프로세서 (Processor)

  • 산술/논리 장치 (ALU, Arithmetic/Logic Unit): 수학적 계산과 논리적 비교를 수행하는 장치
  • 중앙 처리 장치 (CPU): 프로그램 명령어를 실행하는 주요 하드웨어
    • ALU
    • 제어 장치 (Control Unit)
    • 레지스터 (Register)
  • 멀티프로세서 (Multiprocessors): 여러 개의 프로세서를 사용하여 성능을 향상시킨 시스템
  • 그래픽 처리 장치 (GPU): 대규모 병렬 계산을 수행하는 하드웨어, 주로 그래픽 처리에 사용되지만 AI 계산에도 활용됨
  • SoC (System on a Chip): 하나의 칩에 여러 기능을 집약시킨 시스템, 스마트폰 등에서 사용됨

프로세서의 진화

  • 폰 노이만 건축 (Von Neumann Architecture):
    • 개념: 1945년 폰 노이만이 제안한 컴퓨터 아키텍처
    • 특징: 데이터와 명령어가 같은 메모리에 저장됨. 명령어를 가져와서 실행하는 구조
    • 문제점: 명령어와 데이터가 동일한 버스를 사용하기 때문에, 명령어 가져오기와 데이터 처리 작업이 동시에 발생할 수 없다는 "폰 노이만 보틀넥" 문제 발생
  • AI 애플리케이션의 당면 과제:
    • 폰 노이만 보틀넥: 데이터 전송 속도가 성능에 큰 제약을 준다는 문제
    • 새로운 패러다임: 뉴로모픽 건축(Neuromorphic Architecture) - 인간 뇌의 구조와 동작을 모방한 컴퓨터 아키텍처로, 더 빠르고 효율적인 데이터 처리가 가능

 


메모리

  • 휘발성(volatile) 메모리: 전원이 꺼지면 지워짐
    • 정적 램(SRAM)→ 캐시셀이 고속(~2nsec 액세스 시간)을 나타내며, 새로 고침 필요 X
    • 저밀도(트랜지스터/비트 6개), 고가
    • 동적 램(DRAM) → 메인 메모리SRAM보다 느림(액세스 시간 ~ 15nsec), 동적 새로 고침 필요
    • 고밀도(트랜지스터/비트 1개)
  • 비휘발성(non-volatile) 메모리: 전원이 꺼져도 지워지지 않음.
    • = 플래시 메모리(Flash memory)
      1. 비대칭적인 읽고 쓰기: 읽기 속도(20us) < 쓰기 속도(200us)
      2. 인플레이스 업데이트 불가: 페이지는 해당 페이지가 속한 전체 블록을 지운 후에만 작성 가능
      3. 내구성 제한: 블록 100,000번 이상 사용 불가
    • Hard Disk Drive(HDD)
    • 자기 저장 매체
    • Solid State Disk (SSD)
    • 보조 기억 장치, 플래시 변환 계층(FTL)
    • 속도 비교
     

프로세서 레지스터

  • 범용 목적 레지스터
  • 레지스터 사용 최적화 → 메모리 참조 최소화
  • 특수 목적 레지스터
    • 프로그램 카운터(=PC)
    • 반입할(fetched) 명령의 주소 포함
    • 명령어 레지스터(=IR)
    • 가장 최근에 반입한 명령 포함
    • 프로그램 상태 단어(=PSW)ex. 상태 코드, 인터럽트 마스크, 권한 수준 등
      • 상태 코드(Condition code)(OF: 오버플로 플래그, ZF: 제로 플래그)
      • 최신 산술 또는 논리 연산에 의해 자동으로 업데이트
    • CPU의 현재 상태 포함(플래그 집합)
    • 메모리 주소 레지스터(=MAR)
    • 입출력을 위해 메모리에서 반입할 현재 명령의 주소 보유
    • 메모리 버퍼 레지스터(=MBR, MDR)
    • MAR에 보관된 주소에서 찾은 내용을 보관

명령어 집합 구조 (ISA)

소프트웨어와 하드웨어 사이의 인터페이스 정의

기계 상태 = 레지스터 + 메모리

ex. x86, x86-64, IA64, ARM

  • 참고: 

  • 명령어 형식
    • 연산코드(Opcode)
    • 수행할 작업 지정 ex. 4비트 → 16가지 명령어 표현 가능
    • 피연산자(Operands)
    • 입력/출력 데이터 및 해당 주소 지정
  • 명령어 반입(Instruction Fetch)
    1. 프로세서: 메모리에서 명령 반입(fetch)
    2. 프로그램 카운터(PC): 다음에 반입할 명령의 주소 유지
    3. 반입한 명령이 명령어 레지스터(IR)에 로드
  • 프로그램: 처리기에 의해 수행, 메모리에 저장된 명령어들의 집합
  • 명령어 사이클
      1. 메모리에서 명령어 반입
      2. 명령어 해석
      3. 명령어 수행(필요하다면 다른 연산코드 가져오기)
      4. 결과 저장
      5. 다음 과정으로 넘어가서 반복명령어 작업 범주
  • 프로그램 수행 예시
    1. PC에 첫 번째 명령어의 주소인 300 들어있음.
    2. IR 내 첫 번째 4비트는 메모리에 저장된 값이 AC에 적재될 것을 나타낸다. 나머지 12비트(3개의 16진수)는 그 주소 940을 명시한다.
    3. 다음 명령어(5941)가 주소 301로부터 반입됨. PC 증가
    4. AC의 이전 내용 + 주소 941의 내용 ⇒ 더한 결과가 AC에 저장됨.
    5. 다음 명령어(2941)가 주소 302로부터 반입됨. PC 증가
    6. AC의 내용이 주소 941에 저장됨.
     

프로그램 수행예시 참고 사진

 

저작자표시

'CS > OS' 카테고리의 다른 글

[운영체제] 메모리  (0) 2025.01.28
[운영체제] virtual box에서 ubuntu 설치 및 터미널 명령어 실행하기  (0) 2023.07.09
운영체제 - 생산자 소비자 문제 semaphore을 활용하여 해결하기  (0) 2023.05.31
가상머신에서 우분투 설치하는 법  (0) 2023.05.26
[운영체제] 인터럽트  (0) 2023.05.20
'CS/OS' 카테고리의 다른 글
  • [운영체제] virtual box에서 ubuntu 설치 및 터미널 명령어 실행하기
  • 운영체제 - 생산자 소비자 문제 semaphore을 활용하여 해결하기
  • 가상머신에서 우분투 설치하는 법
  • [운영체제] 인터럽트
abyss-s
abyss-s
프론트엔드 공부합니다.
  • abyss-s
    abyss-s의 블로그입니다.
    abyss-s
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • Web (16)
        • JavaScript (6)
        • TypeScript (1)
        • React (5)
        • Vue (0)
        • Storybook (1)
        • Next.js (1)
      • Backend & Infra (8)
        • Database (3)
        • Node.js (2)
        • SpringBoot (1)
      • PS (71)
      • CS (30)
        • OS (13)
        • Structure & Algorithm (5)
        • Network (10)
        • 정보처리기사 (2)
      • Language (18)
        • OOP (1)
        • JAVA (13)
        • C++ (4)
      • Activities (12)
        • 멋쟁이 사자처럼 (2)
        • OSSCA (3)
        • LG U+ URECA (3)
        • Project (2)
      • AI (0)
      • Git & Github (5)
      • Notion (1)
      • IT (4)
      • Statistics (11)
      • Book (4)
      • Diary (1)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
    • 백준
    • 트위터
  • 공지사항

    • abyss-s의 티스토리에 오신 것을 환영합니다.
  • 인기 글

  • 태그

    BFS
    Java
    자바스크립트
    운영체제
    그리디
    백준
    JavaScript
    통계학
    파이썬
    OS
    github
    BAEKJOON
    Python
    React
    생활코딩
    코드트리
    자바기반응용프로그래밍
    C++
    네트워크
    DP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
abyss-s
[운영체제] Overview
상단으로

티스토리툴바