분류 전체보기(196)
-
보조기억장치
HDDHDD는 자기적인 방식으로 데이터를 저장하는 장치를 의미한다. HDD의 중요한 구조는 트랙과 섹터이다. (102동 704호처럼 Track이 102동, Sector가 704호라고 생각하면 된다.)하나의 섹터는 512bytes정도의 데이터를 읽고 쓸 수 있다. 하지만 새로운 데이터를 쓸 때는 기존에 위치한 섹터의 정보를 지우는 것이 아니라 overwrite하고 그 횟수도 정해져있다. HDD는 여러 겹의 플래터가 겹쳐있는데, 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적인 단위를 실린더라고 한다. 연속된 정보는 보통 한 실린더에 기록된다. HDD가 저장된 데이터에 접근하는 시간은 다음과 같다.탐색 시간 : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간회전 시간 : 헤드..
2024.05.17 -
물리 주소와 논리 주소
주소에는 물리 주소와 논리 주소가 있다.logical = virtual ➡ 가상 메모리 주소 physical ➡ 실제 메모리 주소 왜 두 개의 주소로 분리를 했을까? 이유는 CPU와 실행 중인 프로그램이 현재 메모리 몇 번지에 무엇이 저장되어있는지 전부 알지 못하기 때문이다. 같은 프로그램을 실행하더라도 실행할 때마다 실제 메모리에 저장되는 주소는 달라진다. 그리고 프로그램은 매우 짧은 시간에 실행되다가 종료되기도 한다. 이때마다 일일히 현재 메모리에 어떤 것이 저장되었는지 기억하는 것은 매우 어렵다. 그래서 각 프로그램들은 물리 주소가 아닌 0번지부터 시작하는 자신만을 위한 논리 주소를 가지고 있다. 논리 주소는 실행중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 의미한다.물리 주소는 데이터가..
2024.05.17 -
메모리와 캐시 메모리
RAM의 특징과 종류주기억장치의 종류에는 RAM과 ROM이 있다. 그 중 1차 메모리로 대부분 지칭하는 RAM에 대해 정리하자.RAM의 특징은 휘발성 저장 장치라는 점이다. 즉, 전원이 꺼지면 RAM에 저장된 명령어와 데이터가 날아간다.반면에 HDD, SSD, CD-ROM, USB 메모리 같은 보조기억장치는 비휘발성 저장 장치이다.이 특징을 이용해서 보조기억장치에는 보관할 대상을 저장하고 주기억장치 RAM에는 실행할 대상을 저장한다. RAM의 용량이 크다면 보조기억장치에서 많은 데이터를 가져와 미리 RAM에 저장할 수 있으므로 많은 프로그램을 동시에 실행하는 데 유리하다. 하지만 필요 이상으로 커진 경우에는 속도가 그에 비례하여 증가하지는 않는다. DRAM (Dynamic RAM)DRAM은 시간이 지나면..
2024.05.17 -
페이지 교체 알고리즘과 프레임 할당
https://ukgi-dev.tistory.com/179 가상 메모리와 페이징운영체제의 가장 핵심적인 역할은 프로세스 관리와 메모리 관리이다.OS는 가상 메모리를 활용해서 메모리 관리를 어떻게 할까?스와핑가상 메모리는 실행하고자 하는 프로그램을 일부만 메모리ukgi-dev.tistory.com위의 포스팅에서 페이징의 개념과 페이지 테이블을 통해 어떻게 프레임으로 할당되는지 정리해보았다.가상 메모리를 사용하는 이유는 작은 물리 메모리보다 큰 프로세스를 실행하기 위함이라고 했다. 그럼에도 물리 메모리의 크기는 한정되어 있다. 따라서 OS는 기존에 메모리에 적재된 불필요한 페이지를 선별하여 스왑 아웃해야하고, 프로세스에게 적절한 갯수의 프레임을 할당해서 페이지를 할당할 수 있어야한다. 이번 포스팅에서는 OS..
2024.05.16 -
Level 2️⃣ - 캐시 (2018 KAKAO BLIND RECRUITMENT)
https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 어려운 문제는 아니지만 컴퓨터 구조를 활용한 알고리즘 문제라는 재밌는 유형이기에 정리한다. 캐쉬 교체 알고리즘을 활용해서 코드를 구현해야한다.LRU (Least Recently Used) 에 대해 자세한 설명이 나와있지 않기 때문에 해당 개념을 모른다면 문제를 풀 수 없다.LRU는 가장 오랫동안 참조하지 않은 데이터를 교체하는 알고리즘이다. 캐시 큐에 데이터가 있다면 cache hit이다.이 경우에는..
2024.05.16 -
CPU 성능 향상 기법
멀티코어 프로세서와 멀티스레드 프로세서빠른 CPU를 위한 설계 기법에는 어떤 것이 있을까? 먼저 클럭 속도를 높이는 방법이 있다. 클럭 신호를 높이면 CPU를 비롯한 컴퓨터 부품들이 빠른 박자에 맞춰 움직이고 명령어 사이클이 더 빠르게 반복된다. 하지만 무작정 클럭 속도를 높이면 발열 문제가 심각해지고 CPU 성능 향상에 한계가 있다. 클럭 속도를 높이는 방법 말고 대표적인 해결책으로 코어를 늘리는 방법이 있다.우선 과거 CPU는 명령어를 실행하는 부품으로 원칙적으로 하나만 존재했다. 하지만 오늘날의 CPU는 명령어를 실행하는 부품을 여러 개 포함하는 부품으로 명칭의 범위가 확장되었다.코어를 여러 개 포함하고 있는 CPU를 멀티코어 CPU, 멀티코어 프로세서라고 부른다.하지만 CPU의 연산 속도는 꼭 코..
2024.05.16