CS 105

컴퓨터 구조론 2장 [CPU의 구조와 기능 - CPU의 기본 구조]

CPU는 기억장치에 저장되어 있는 프로그램 코드인 명령어들을 실행함으로서 프로그램 수행이라는 컴퓨터의 기본적인 기능을 수행한다.CPU가 수행해야 하는 세부적인 동작들명령어 인출(Instruction fetch) : 기억장치로부터 명령어를 읽어온다.명령어 해독(Instruction decode) : 수행해야 할 동작을 결정하기 위하여 명령어를 해독한다.데이터 인출(Data fetch) : 명령어 실행을 위하여 데이터가 필요한 경우 기억장치 혹은 I/O장치로부터 그 데이터를 읽어온다.데이터 처리(Data process) : 데이터에 대한 산술적 혹은 논리적 연산을 수행한다.데이터 저장(Data store) : 수행한 결과를 저장한다.첫번째 동작과 두번째 동작은 모든 명령어들에 대하여 공통적으로 수행된다.세번..

컴퓨터 구조론 1장 [컴퓨터 구조의 발전 과정]

컴퓨터 구조의 발전 과정현재 수 많은 컴퓨터들이 존재한다. 대부분은 기본적인 구조와 동작 원리에 기본을 두고 있다. 초기의 컴퓨터들도 그러한 원리에 바탕을 두고 있었지만, 릴레이(relay)와 같은 기계식 부품들을 이용하여 만들어졌다.그 후에 주요 부품들이 트랜지스터나 반도체 집적회로(semiconductor integrated circuit : IC)칩으로 대체되면서, 컴퓨터의 처리 속도가 계속 높아지고 있다. 또한 반도체 기억장치 칩의 밀도가 높아짐에 따라 저장 용량도 크게 증가되고 있다.최근에는 시스템의 성능을 높이기 위하여 한 시스템 내에 장착되는 CPU의 수를 증가시키거나, 하나의 칩에 여러 개의 CPU 코어(core)들을 포함시키기도 하며, 구성 요소들 간의 연결 통로를 고속화하기 위한 새로운..

컴퓨터 구조론 1장 [시스템의 구성]

CPU와 기억장치의 접속CPU와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로가 되는 시스템 버스(System Bus)이다.시스템 버스는 세 가지 하부 버스(Sub-Bus)들로 이루어진다.시스템 버스 - CPU와 다른 요소들 간의 정보 교환 통로 주소버스주소버스(Address bus)는 CPU가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합이다.각 주소선은 하나의 주소 비트를 전송하는 데 사용되며, 전체 주소 선들의 개수가 CPU와 접속될 수 있는 최대 기억장치 용량을 결정해준다.CPU가 발생하는 주소 비트들의 수를 주소 버스의 폭(Width)이라고 하는데, 만약 그 폭이 16바트라면, 최대 2^17 = 65,546개(즉, 64K개) 기억장소들의 주소를 지정해 줄 수 있다.주소버스 - 주..

컴퓨터 구조론 1장 [정보의 표현과 저장]

정보의 표현과 저장컴퓨터가 받아들이고 처리하는 정보의 종류로는 프로그램 코드(Program Code)와 데이터(Data)가 있다.디지털 컴퓨터에서 정보들은 모두 2진수(Binary Number)를 나타내는 비트(bit)들의 조합으로 표현된다.컴퓨터 프로그램은 C, C++ 혹은 Python과 같은 고급 언어(High-Level-Language)를 이용하여 작성된다. 이렇게 작성된 프로그램은 영문자들과 숫자들로 이루어져 있어서 사람들이 이해하기는 쉽지만, 디지털 회로들로 이루어진 컴퓨터 하드웨어는 전혀 이해하지 못한다. 따라서 이 프로그램은 컴파일러(Compiler)라고 부르는 소프트웨어에 의해 하드웨어가 이해할 수 있는 언어로 번역된다.컴퓨터를 계산기계(computer machine)라고 부르기도 하므로,..

컴퓨터 구조론 1장 [컴퓨터의 기본 구조]

컴퓨터 시스템 개요컴퓨터 시스템은 기본적으로 하드웨어와 시스템 소프트웨어로 구성되며, 시스템에 각종 응용 소프트웨어(application software)들이 탑재되어 사용자와 상호작용을 하면서 프로그램을 처리한다.컴퓨터가 프로그램 형태로 주어진 작업을 수행하기 위해서는 표현된 정보들을 해석하거나 이동 시키고 처리하여 새로운 정보를 생성해야 한다.컴퓨터에서는 각종 정보들의 전송 통로를 제공하며, 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체들을 하드웨어(hardware)라고 부른다.하드웨어의 구성요소메인 보드(Main Board) : 주요 IC 칩들과 메모리 모듈 및 IO장치 인터페이스를 위한 슬롯들이 장착되는 기판으로, 주 기판 혹은 마더 보드(Mother Board)라고 부른다.CPU 및 G..

[Chapter 6] 개념 이해를 위한 운영체제 [파일 시스템 - 리눅스 파일 시스템]

가상 파일 시스템가상 파일 시스템(VFS : Virtual File System)의 기본 개념은 사용자로 하여금 다양한 파일 시스템을 일관된 형태로 접근할 수 있도록 하는것이다.대부분의 운영체제에서는 자신의 파일 시스템만을 지원하고 있지만 ㄱ리눅스에서는 가상 파일 시스템 개념을 도입하여 여러 종류의 파일 시스템을 지원하고 있다. 리눅스 커널의 기본 파일 시스템은 EXt2 파일 시스템이다. 그러나 리눅스에서는 VFS를 통하여 다양한 운영체제(ex): Ms-DOS, UNIX, MINIX, Windows, NT 등)에서 사용하는 파일 시스템을 지원한다. VFS는 특정 파일 시스템들의 상위 계층에 위치하면서 각각의 파일 시스템을 추상화한다. 따라서 사용자 프로세스의 파일 접근을 위한 시스템 호출은 일차적으로 V..

CS/운영체제 2025.03.03

[Chapter 6] 개념 이해를 위한 운영체제 [파일 시스템 - 디스크 관리]

운영체제를 포함하여 대부분의 파일은 디스크 상의 블록 단위로 저장된다.하나의 파일은 여러 개의 블록으로 구성되기 때문에 하나의 파일을 참조하기 위해서는 파일을 구성하는 모든 블록을 접근하여야 한다. 따라서 디스크 접근 속도는 물리적으로 제한되어 있지만 이를 운영하는 방법에 따라 시스템의 성능이 달라진다. 디스크 구조 및 접근 시간디스크는 여러 개의 원판과 헤드로 구성되며 데이터는 헤드에 의해 원판의 표면에 저장된다. 하나의 원판은 동심원을 그리는 여러 개의 트랙으로 나누어지고 트랙은 또 다시 여러 개의 섹터로 나뉘어 사용된다. 유의할 점 트랙의 길이는 다르지만 트랙 당 섹터의 수는 일정하다. 트랙 및 섹터의 수는 디스크의 특성에 의해 물리적으로 결정되지만 일반적으로 하나의 디스크 원판에는 500 ~ 20..

CS/운영체제 2025.03.03

[Chapter 6] 개념 이해를 위한 운영체제 [파일 시스템 - 빈 공간 관리]

파일의 내용을 저장하기 위해서는 보조 기억장치의 빈 공간을 파악하고 빈공간을 할당하는 기법이 필요하다.  빈 공간 관리파일 시스템은 새로운 파일을 생성하기 위하여 보조 기억장치의 빈 공간의 크기와 위치를 관리해야 한다. 이러한 빈 공간을 관리하는 기법은 보조 기억장치의 용량에 따라 다르다.비트 맵보조 기억장치의 빈 공간을 관리하기 위하여 모든 블록에 해당하는 비트맵 혹은 비트 백터를 유지하고 각 블록의 사용 여부를 비트 단위로 표시하는 가장 간단한 기법이다. 만약 보조 기억장치의 해당 블록이 사용중이면 '1' 아니면 '0'으로 표시한다.ex) 20개의 블록으로 구성된 디스크에서 블록 번호 0, 1, 2, 10, 11, 15, 16, 17이 사용중이고 나머지 블록은 비어있을 경우 비트맵의 내용은 11100..

CS/운영체제 2025.03.03

[Chapter 6] 개념 이해를 위한 운영체제 [파일 시스템 - 개요]

파일 시스템은 일반 사용자가 가장 가깝게 접하게 되는 운영체제의 구성 요소로써 사용자의 편의성 제공을 위하여 보다 쉽게 파일을 저장하고 저장된 파일을 접근할 수 있도록 하는 것이 가장 중요하다.파일 시스템에서 제공하는 기능파일 생성(creation)과 삭제(deletion)파일 열기(open)와 닫기(close)파일 읽기(read)와 쓰기(write)파일 공유(sharing)와 보호(protection)파일 시스템은 사용자의 요청에 따라 디스크와 같은 보조 기억 장치에 파일의 내용을 저장하고 저장된 파일의 내용을 다시 사용할 수 있도록 사용자의 보조 기억장치 사이의 인터페이스 기능을 제공한다. 이러한 기능을 제공하기 위하여 피일 시스템은사용자의 논리적 단위인 파일과 보조 기억장치의 물리적 단위인 블록 사..

CS/운영체제 2025.03.02

[Chapter 5] 개념 이해를 위한 운영체제 [메모리 관리 - 다중 프로그래밍 시스템]

다중 프로그래밍 시스템에서는 다수의 사용자 프로세스를 메모리에 적재하기 위하여 사용자 영역을 여러 개로 분할하여야 한다. 여기서 분할은 하나의 프로세스를 메모리에 적재하는데 필요한 메모리 영역을 의미하며 크기가 고정 혹은 가변적이다.다수의 고정 혹은 가변 분할된 메모리 영역에 프로세스를 할당하는 방법에는 연속(contiguous) 할당과 불연속(non contiguous) 할당이 있다. 연속 할당연속 할당은 하나의 사용자 프로세스를 임의의 분할에 연속적으로 할당하는 방법으로서 분할의 크기가 할당하려는 사용자 프로세스보다 반드시 크거나 같아야 한다.연속 할당 기법은 고정 혹은 가변 분할에 따라 차이가 있다. 고정 분할고정 분할은 다중 프로그래밍을 위하여 메모리 주소 공간을 임의의 크기로 분할하여 사용자 프..

CS/운영체제 2025.02.27