Computer Science 14

CPU 성능 향상 기법

1. 빠른 CPU를 위한 설계 기법📌 클럭컴퓨터 부품들은 '클럭 신호'에 맞춰 일사불란하게 움직입니다.그리고 CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행합니다. 클럭 신호가 빠르게 반복된다면CPU를 비롯한 컴퓨터 부품들은 그만큼 빠른 박자에 맞춰 움직이게 됩니다. 즉, 클럭 속도가 높아지면 CPU는 명령어 사이클을 더 빠르게 반복할 것이고, 다른 부품들도 그에 발맞춰 더 빠르게 작동할 것입니다. 실제로 클럭 속도가 높은 CPU는 일반적으로 성능이 좋습니다. 그래서 클럭 속도는 CPU 속도 단위로 간주되기도 합니다. 클럭 속도는 헤르츠(Hz) 단위로 측정합니다.이는 1초에 클럭이 몇 번 반복되는지를 나타냅니다.가령 클럭이 똑-딱-하고 1초에 한 번 반복되면 CPU 클럭 속도는 1H..

CPU의 작동 원리

CPU란? 메모리에 저장된 명령어를 읽어 들이고, 해석하고, 실행하는 장치입니다.더보기가장 큰 사각형은 메인보드메인보드 안에 시스템 버스(양방향 수직 화살표)가 있음CPU 내부에는 ALU(산술논리연산장치), 제어장치와 여러 레지스터가 있음.CPU는 메인보드 내 시스템 버스와 연결되 어있음메모리는 메인보드 내 시스템 버스와 연결되어 있음보조기억장치는 메인보드 내 시스템 버스와 연결되어 있음모니터, 키보드, 마우스 등은 메인보드 내 시스템 버스와 연결되어 있음. 이들을 입출력장치라고 부름.CPU의 구성 요소 중 ALU와 제어장치를 알아봅시다.1. ALU와 제어장치📌 ALU ALU는 계산하는 부품입니다.계산하기 위해서는 무엇이 필요할까요? 1+2를 계산할 때 1과 2라는 피연산자와 더하기라는 수행할 연산이 ..

명령어

1. 소스 코드와 명령어📌 고급 언어와 저급 언어컴퓨터는 C, C++, Java, Python과 같은 프로그래밍 언어를 이해할 수 있을까요? 답은 "그렇지 않다"입니다. 우리가 프로그램을 만들 때 사용하는 프로그래밍 언어는 컴퓨터가 이해하는 언어가 아닌 사람이 이해하고 작성하기 쉽게 만들어진 언어입니다.컴퓨터는 이 언어를 이해하지 못합니다.이렇게 "사람을 위한 언어"를 고급 언어 high-level programming language라고 합니다.➡ 대부분의 프로그래밍 언어가 고급 언어에 속합니다. 반대로 컴퓨터가 직접 이해하고 실행할 수 있는 언어를 저급 언어 low-level programming language라고 합니다.컴퓨터가 이해하고 실행할 수 있는 언어는 오직! 저급 언어일 뿐입니다. 그래..

컴퓨터 데이터, 정보단위

1. 0과 1로 숫자를 표현하는 방법정보 단위컴퓨터가 표현하는 정보단위란?컴퓨터는 0 또는 1밖에 이해하지 못합니다.(*이진수는 컴퓨터의 회로에서 전기 신호의 상태(켜짐, 꺼짐)를 표현하는데 적합하기 때문에 사용합니다.) 0과 1을 나타내는 가장 작은 정보 단위를 비트 bit(Binary Digit)라고 합니다. 비트는 0과 1을 표현할 수 있는 가장 작은 정보 단위 예를 들어, 하나의 전구를 꺼짐과 켜짐  두 가지 상태를 표현할 수 있듯이,비트는 0 또는 1, 두 가지 정보를 표현할 수 있습니다. 그럼 2개의 전구는 몇 가지 상태를 보여줄 수 있을까요?(꺼짐, 꺼짐), (꺼짐, 켜짐), (켜짐, 꺼짐), (켜짐, 켜짐) 총 4가지의 정보를 표현할 수 있습니다. 이처럼 2비트는 4가지를 표현할 수 있습..

컴퓨터 구조 시작하기

1. 컴퓨터 구조를 알아야 하는 이유1️⃣ 문제 해결똑같은 코드로 실습하고 있음에도 코드가 제대로 작동하지 않음컴퓨터 구조를 이해하고 있다면 문제 상황을 빠르게 진단할 수 있고, 문제 해결의 실마기를 다양하게 찾을 수 있음.컴퓨터 내부를 거리낌 없이 들여다보며 더 좋은 해결책 고민 가능. 문법에 맞는 소스 코드를 컴퓨터에 입력만 하는 개발자 ➡ 컴퓨터를 내려다보며 문제를 해결할 수 있는 개발자2️⃣ 성능, 용량, 비용개발한 웹사이트는 여느 프로그램과 마찬가지로 컴퓨터에서 작동하기 때문에 사용자들에게 선보이려면 이를 실행할 컴퓨터, 즉 서버 컴퓨터가 필요함.무조건 저렴? 최신?이런 단순한 기준은 개인 컴퓨터를 고를 땐 문제가 되지 않으나, 프로그램을 실행할 서버 컴퓨터를 고를 땐 문제가 됨무작정 저렴한 컴..

파일 시스템

👩‍💻 학습 목표파일에 대해 이해하기.디렉터리에 대해 이해하기.파티셔닝과 포매팅이 무엇인지 이해하기.파일 시스템의 파일 할당 방법 학습하기.FAT 파일 시스템과 유닉스 파일 시스템을 학습하기.1. 파일과 디렉터리파일과 디렉터리는 모두 운영체제 내부 파일 시스템이 관리하는 존재파일과 디렉터리는 보조기억장치에 있는 데이터 덩어리 ➡ 어떻게 운영체제가 인식하고 관리하는 걸까?📃 파일파일(file)이란 하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합을 의미한다.달리 표현하면 파일은 의미 있고 관련 있는 정보를 모은 논리적 단위를 의미한다. [파일의 구성]이름파일을 실행하기 위한 정보파일 관련 부가 정보 : 속성(attribute) or 메타데이터(metadata) 파일 속성 : 파일 형..

Computer Science/OS 2024.09.25

가상 메모리 | 페이지 교체 알고리즘

가상 메모리 이전 내용 가상 메모리👩🏻‍💻 학습 목표스와핑이 무엇인지 이해하기연속 메모리 할당 기법과 외부 단편화 문제 이해하기가상 메모리 관리 기법인 페이징의 개념과 작동을 이해하기요구 페이징의 개념과 페이지water-lee.tistory.com 3. 페이지 교체와 프레임 할당 가상 메모리를 통해 작은 물리 메모리보다 큰 프로세스도 실행할 수 있다고는 하지만, 글머에도 불구하고 여전히 물리 메모리의 크기는 한정되어 있음. 운영체제는 프로세스들이 한정된 메모리를 효율적으로 이용할 수 있도록기존에 메모리에 적재된 불필요한 페이지를 선별하여 보조기억장치로 내보낼 수 있어야 하고,프로세스들에 적절한 수의 프레임을 할당하여 페이지를 할당할 수 있게 해야함. 1) 요구 페이징📌 요구 페이징 demand p..

Computer Science/OS 2024.09.20

가상 메모리

👩🏻‍💻 학습 목표스와핑이 무엇인지 이해하기연속 메모리 할당 기법과 외부 단편화 문제 이해하기가상 메모리 관리 기법인 페이징의 개념과 작동을 이해하기요구 페이징의 개념과 페이지 교체 알고리즘 이해하기스래싱과 그를 해결하기 위한 프레임 할당에 대해 이해하기1. 연속 메모리 할당메모리 내에 프로세스들이 연속적으로 배치되는 상황을 가정했었는데,이렇게 프로세스에 연속적인 메모리 공간을 할당하는 방식을 연속 메모리 할당 방식이라고 함A는 A의 크기만큼 메모리 주소를 할당받아 연속적으로 배치되고B는 프로세스 A 이후에 또 B의 크기만큼 연속적인 메모리 주소를 할당받아 배치되는 식더보기운영체제의 핵심 서비스프로세스 관리 : 메모리에 적재되어서 동시에 실행되고 있는 프로세스들을 관리운영체제는 동시다발적으로 생성/..

Computer Science/OS 2024.09.08

교착 상태

🔥 학습 목표교착 상태가 무엇인지 이해하기교착 상태는 어떤 상황에서 발생하는지 이해하기교착 상태를 예방하고, 회피하고, 검출하는 방법에 대해 학습하기. 1. 교착상태도심 속 도로 정체의 경우 복구되기까지 오랜 시간이 걸리고, 심한 경우엔 교통 경찰이 직접와서 마비를 해결해야한다.이처럼 프로세스 실행 과정에서도 비슷한 문제가 발생하며,프로세스 실행하기 위해서는 자원이 필요한데,두 개 이상의 프로세스가 각자 가지고 있는 자원을 무작정 기다린다면 그 어떤 프로세스도 더 이상 진행할 수 없는 교착 상태가 발생한다. 식사하는 철학자 문제Dining philosophers problem 식사하는 철학자 문제는 교착 상태를 설명하기 위한 아주 고전적이고,교착 상태가 1️⃣어떤 상황에서 왜 발생하는지,2️⃣교착 상태..

Computer Science/OS 2024.09.04