Study in SSAFY/Computer Science

    [운영체제] 파일 시스템

    [운영체제] 파일 시스템

    ========== 1. File and File System File A named collection of related information 비휘발성의 보조기억장치(ex 하드디스크)에 저장되는 단위 운영체제는 다양한 저장 장치를 file이라는 동일한 논리적 단위로 볼 수 있게 해 줌 메모리는 주소를 통해서 접근 ↔ 파일은 이름을 통해서 접근 Operation create, read, write, reposition (lseek), delete, open, close 등 파일의 연산중 reposition (lseek)는 파일의 읽고 있는 포인터를 수정하는 것 open, close를 하는 이유: 파일의 메타데이터를 메모리 올리고 내리는 작업 File attribute ( = metadata) 파일 자체..

    [운영체제] 프로세스 동기화

    [운영체제] 프로세스 동기화

    1. Race Condition Race Condition(경쟁 상태) 여러 프로세스들이 동시에 데이터에 접근하는 상황에서, 어떤 순서로 데이터에 접근하느냐에 따라 결과 값이 달라질 수 있는 상황 공유 데이터에 동시에 접근하는 행위는 데이터의 불일치 문제를 발생시킬 수 있음 Race condition을 막고 일관성을 유지하는 것이 필요 -> 협력 프로세스 간의 실행 순서를 정해주는 동기화(Synchronization)가 필요 대표적으로 다음 세 경우에서 Race Condition이 발생 가능 1. kernal 수행 중 인터럽스 발생 시 count++과 count--가 모두 반영되어 count가 초기값을 유지하는 것이 의도이다. 하지만 Load를 한 후에 Interrupt가 발생하면 Interrupt의 결..

    [운영체제] 프로세스

    [운영체제] 프로세스

    프로세스의 개념 프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 프로세스의 상태 (Process State) 프로세스는 상태(state)가 변경되며 수행된다. Running CPU를 잡고 instruction을 수행 중인 상태 Ready CPU를 기다리는 상태 (메모리 등 다른 조건을 모두 만족하고) Blocked (wait, sleep) CPU를 주어도 당장 instruction을 수행할 수 없는 상태 Process 자신이 요청한 event(예: I/O)가 즉시 만족되지 않아 이를 기다리는 상태 New 프로세스가 생성 중인 상태 Terminated 수행(execution)이 끝난 상태 Suspended (stopped) 외부적인 이유로 수행이 정지된 상태. ex..

    [컴퓨터 구조] 범용 레지스터 구조

    [컴퓨터 구조] 범용 레지스터 구조

    중앙처리장치(CPU)의 주요 요소 1. 기억장치: 레지스터의 집합, 데이터의 임시 저장소 2. 제어장치: CPU 명령어 처리 회로의 집합, 논리 게이트와 요소들로 구성. 명령어 따라 연산 제어 수행 3. 연산장치: ALU(산술연산, 논리연산, 시프트 연산 수행) ALU와 레지스터의 집합 관계 어떤 레지스터에서 데이터를 가져와 ALU에서 계산한 다음, 어떤 레지스터로 보낼 지 정하는 것이다. 7개의 레지스터와 외부 Input이 있고, ALU는 2개의 데이터를 받는다. 이 2개의 데이터는 8개의 입력인 MUX로부터 나온다. 어떤 연산을 할 지는 OPR로 결정한다. 결과가 어떤 레지스터로 갈지 3x8 디코더를 이용해서 load한다. ALU 제어를 위한 제어 워드 SELA, SELB: ALU 입력을 결정한다. ..

    [컴퓨터 구조] 보수(Complement)

    [컴퓨터 구조] 보수(Complement)

    보수(Complement) 보충을 해주는 수를 의미한다. 주로 뺄셈과 논리 계산에 사용한다. 이진법을 예로 들면, 어떤 이진수를 커다란 2의 제곱수에서 빼서 얻은 이진수를 2의 보수라 한다. 2의 보수 (Two's Complement) 주어진 이진수보다 한 자리 높고, 가장 높은 자리가 1이며, 나머지가 0인 수에서 주어진 수를 빼서 얻은 수가 2의 보수이다. 대부분의 산술연산에서 원래 주어진 숫자의 음수처럼 취급된다. 예를 들어 8비트로 이진수를 표기할 때는 0부터 255까지의 숫자를 나타낼 수 있다. 하지만 2의 보수법을 사용하면, 맨 앞 비트를 부호 비트로 사용하여 -128부터 127까지의 숫자를 나타낼 수 있다. (맨 앞이 0이면 양수, 1이면 음수) 2의 보수 계산법 다음과 같은 두 가지 과정만..

    [컴퓨터 구조] 데이터의 종류(Data Types)

    [컴퓨터 구조] 데이터의 종류(Data Types)

    수치 코드(Numeric Code) 수치만을 표현할 수 있는 코드로, 대표적으로 2진 코드*가 있다. 가중치 코드와 비가중치 코드로 나뉜다. 2진 코드*: 코드 알파벳(코드 표현 심볼)이 단지 2개의 요소 [0, 1] 으로만 이루어진 부호 1. 가중치 코드 2진수 각 자리에 정해진 값이 있는 것을 의미한다. 대표적으로 BCD 코드(Binary Code Decimal, 2진 부호화 10진수)가 있다. 말 그대로 10진수를 2진수로 나타낸 것이며, 다른말로 8421 코드라고도 불린다. 2. 비가중치 코드 2진수 각 자리에 정해진 값이 없는 것을 의미한다. 대표적으로 BCD 코드에 3(0011)을 더하여 만든 3초과 코드(Excess-3 Code), BCD 코드의 이웃한 두 개의 비트를 각각 X-OR 연산하여..

    [컴퓨터 구조] 디지털 논리 회로

    [컴퓨터 구조] 디지털 논리 회로

    1. 디지털 컴퓨터 데이터를 수치화하여 처리하는 컴퓨터.사칙 연산이 바탕이 되며 연속적인 양의 표현이 불가능하므로 수치로 변환하여 나타낸다. 보통 컴퓨터라고 하면 디지털 컴퓨터를 가리킨다. 컴퓨터는 하드웨어와 소프트웨어 두 부분으로 구성된다. 하드웨어: 컴퓨터의 모든 전자 제품과 주변 장치를 구성하는 전자기적 부품들을 말한다. 소프트웨어: 컴퓨터의 다양한 정보 처리 작업을 수행하는 명령어와 데이터로 구성된다. 2. 논리 게이트 전자공학에서 논리 게이트(=논리 회로)는 부울 대수를 물리적 장치에 구현한 것으로, 하나 이상의 논리적 입력값에 대해 논리 연산을 수행하여 하나의 논리적 출력값을 얻는 전자회로를 말한다. AND, OR, NOT의 기본 부울 대수를 수행하며, 이 기본 부울 대수들의 결합으로 복합적인..