Computer Science/Introduction 20

혼자 공부하는 컴퓨터구조 + 운영체제: 6. 파일 시스템

15. 파일 시스템 파일과 디렉터리 파일 파일: 의미있고 관련 있는 정보를 모은 논리적 단위 속성(attribute) | 메타데이터(metadata): 이름, 실행하기 위한 정보 등 부가 정보 파일을 다루는 작업은 시스템 호출에 의해 이루어진다. 어떤 응용프로그램도 임의로 파일을 조작할 수 없으며 파일을 다루려면 운영체제가 직접 다루도록 되어있다. 운영체제는 파일 열기, 읽기, 쓰기 등 다양한 시스템 호출을 제공한다. 디렉터리 파일들을 관리하기 위해 묶어놓은 것이 디렉터리이다. 윈도우 운영체제에서는 폴더(folder)라고 부른다. 운영체제 입장에서는 디렉터리도 파일의 한 종류이다. 파일 이름과 파일을 유추할 수 있는 정보의 테이블로 구성된 것을 디렉터리로 인식하고, 디렉터리도 파일처럼 시스템 호출을 통해..

혼자 공부하는 컴퓨터구조 + 운영체제: 5. 가상 메모리

14. 가상 메모리 메모리 연속 할당 스와핑(swapping) 실행이 완료되었거나, 사용한지 너무 오래되어 현재 실행 중이지 않은 프로세스들은 메모리에서 보조기억장치로 옮겨 적재한다. 이것을 스와핑이라고 한다. 스왑 아웃: 메모리에서 보조기억장치로 나가는 것 스왑 인: 보조기억장치에서 메모리로 적재되는 것 스왑 영역: 보조기억장치 내 스와핑을 위한 일부 영역 메모리 할당 메모리 할당 방식에는 3가지가 있다. 최초 적합: 적재할 프로세스보다 큰 공간이 탐색되면 그 공간에 우선 배치하는 방식 최적 적합: 빈 공간을 모두 검색한 후, 적재할 프로세스보다 크되 가장 작은 공간에 배치하는 방식 최악 적합: 빈 공간을 모두 검색한 후, 가장 큰 공간에 적재할 프로세스를 배치하는 방식 외부 단편화 연속적으로 메모리를..

혼자 공부하는 컴퓨터구조 + 운영체제: 4. CPU 스케줄링, 프로세스 동기화, 교착 상태

11. CPU 스케줄링 CPU 스케줄링 구조입출력 집중 프로세스(I/O bound process): 비디오 출력, 디스크 백업 등 입출력이 많은 프로세스. 실제 실행보다는 입출력장치를 기다리는 대기 상태에 많이 머무른다. CPU 집중 프로세스(CPU bound process): 수학 연산, 그래픽 작업 등 CPU 연산이 많이 필요한 프로세스 기본적으로 CPU 작업에 비해 입출력장치의 속도가 느리므로, 입출력 집중 프로세스를 먼저 처리하여 입출력 집중 프로세스들을 입출력장치쪽으로 넘기는 것이 좋다. - CPU를 이용하는 작업을 CPU burst, 입출력장치를 기다리는 작업을 I/O burst 라고 한다. + 프로세스 우선순위 직접 확인하기 리눅스나 macOS의 명령어로 ps -el 을 입력하면 프로세스들의..

9혼자 공부하는 컴퓨터구조 + 운영체제: 3. 입출력 장치, 운영체제, 프로세스와 스레드

8. 입출력 장치 장치 컨트롤러와 드라이버 장치 컨트롤러 필요성 컴퓨터와 데이터를 주고 받는 모든 장치(마이크, 스피커, 프린터 등)들은 장치컨트롤러를 사용한다.입출력 구조가 다양하여 중간자 역할을 하는 장치 컨트롤러가 있어야 CPU와 규격화된 통신을 할 수 있다.CPU에 비해 데이터 전송률이 일반적으로 낮으므로 장치 컨트롤러의 버퍼가 필요하다. 장치 컨트롤러 기본 구조 장치 컨트롤러 내부에는 버퍼 역할을 하는 데이터 레지스터, 입출력 장치의 상태를 표시하는 상태 레지스터, 입출력장치가 수행할 내용을 저장하는 제어 레지스터가 있다. 장치 드라이버 장치 컨트롤러의 동작을 감지하고 제어하는 프로그램. 각 운영체제가 이 장치 드라이버를 인식하고 실행한다. 프로그램이기 때문에 메모리에 저장되어 실행된다. 입출력..

혼자 공부하는 컴퓨터구조 + 운영체제: 2. CPU 처리, 메모리, 보조기억장치

혼자 공부하는 컴퓨터구조 + 운영체제 - 강민철 지음의 요약본이다. 5. CPU 성능 향상 기법 코어와 스레드 - 코어(Core)는 명령어를 실행하는 부품으로 ALU, 제어장치, 레지스터들이 포함된 부품을 말한다. 과거에 비해 오늘날의 CPU는 멀티 코어 CPU(멀티코어 프로세서)로 구성된다. - 명령어를 처리하는 흐름의 단위를 스레드(thread) 라고 한다. 기존에는 1개의 코어가 1개의 명령어를 처리하는 1스레드였으나, 하나의 코어로 여러 명령어를 동시에 처리하는 CPU를 멀티스레드 프로세서 또는 멀티스레드 CPU라고 한다. 이러한 설명을 하드웨어적 스레드라고 한다. - 메모리의 각 부분에서 여러 프로그램을 동시에 실행하는 것을 소프트웨어적 멀티스레드라고 한다. - 메모리 입장에서는 2코어 4스레드..

혼자 공부하는 컴퓨터구조 + 운영체제: 1. 컴퓨터 구조 개요, CPU의 동작

혼자 공부하는 컴퓨터구조 + 운영체제 - 강민철 지음의 요약본이다. 1. 컴퓨터 구조의 개요 컴퓨터 부품의 종류와 구조 - 컴퓨터가 이해하는 정보는 데이터와 명령어 - 컴퓨터의 핵심 4가지 부품 : CPU, 메모리, 보조기억장치, 입출력장치 - 보조 기억 장치에 저장된 데이터와 명령어를 메모리로 불러온다. 전원이 꺼져도 데이터를 보관하기 위해 보조기억장치를 사용한다. - 메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장한다. - CPU는 메모리에 저장된 명령어를 읽어들이고, 해석하고, 실행한다. - ALU(Arithmetic Logic Unit)은 산술 연산을 한다. 레지스터는 프로그램을 실행하는 데 필요한 값들을 임시로 저장하는 CPU 내부의 저장 장치이다. 제어 장치는 제어 신호(control..

12. 중앙 처리 장치, 레지스터

1. 레지스터(Register) 레지스터는 중앙처리장치(CPU, Central Processing Unit)의 구성 요소 중 하나이다. 중앙처리 장치는 3가지로 나누어 설명하는 경우가 많다. 연산 장치 : 덧셈, 뺄셈, 곱셈, 나눗셈 등의 산술연산, 논리곱, 논리합, 부정 등의 논리연산을 수행한다. 산술논리연산장치라고도 한다. 연산장치는 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보내서 저장한다. 제어 장치 : 명령어를 순서대로 실행할 수 있도록 제어한다. 주기억장치에서 프로그램 명령어를 꺼내 해독한 다음, 해독 결과에 따라서 명령어 실행에 필요한 신호를 기억장치, 연산장치, 입출력 장치로 보낸다. 레지스터 : RAM, ROM 등에 비해 더 고속인 기억장치이다. 명령어 주..

11. 시간표현과 상태기억: Gate S-R 래치, Gate D 래치, 플립플롭, 카운터

1. Gate S-R 래치 특정 타이밍에 S-R 래치를 동작시키기 위해서 NAND 게이트 외에 OR 게이트를 2개 추가하고 gate 입력 신호를 추가한다. S-R 래치의 입력을 on/off로 통제하기 위해서 사용한다. 동작 방식을 생각해보자. gate에 1을 주어 gate-bar가 0의 값을 가질 때는, set-bar, reset-bar가 어떤 값이냐에 따라서 출력인 Q, Q-bar가 유지될지 말지가 결정된다. 그러나 gate에 0을 주어 gate-bar가 1이 된다면, set, reset값과 상관없이 OR 게이트를 거치게 되어있으므로 NAND로 들어가는 입력들이 반드시 1이 들어가서 Q, Q-bar의 값이 유지된다. 다시말해 gate의 입력값이 0일때는 반드시 출력값이 유지되도록 해주는 것이다. 2. ..

10. 시간표현과 상태기억: 발진자, 클럭, 래치

1. 발진자(수정 발진기)와 클럭 컴퓨터가 시간을 측정하는 방법이 클럭이다. 클럭은 초당 진동수를 나타내는 헤르츠(Hz)로 표시한다. 아래 그림에서 나타낸 것처럼 1초에 몇 번 입력 신호가 주어졌는지를 표시한다. 이런 입력을 연산이라고 본다면 CPU의 성능 3.2 GHz는 3.2 x 10^9 Hz = 3.2/8 x 10^9 Byte = 약 400 MB/s 정도로 계산할 수 있다. 실제 클럭은 아래 그림의 왼쪽에 있는 원통형의 부품 속에 들어있다. 일반 소자의 발열 등으로 인한 진동수 영향을 최소화하기 위해서 보통 개별 소자로 구성되어있다. 반드시 전원이 들어와야만 움직일 수 있기 때문에, 컴퓨터가 시간을 측정하는 방식은 클럭 뿐만 아니라 실시간 측정 시계(Real Time Clock, RTC)가 따로 존..

9. [종합][스터디] 드 모르간의 법칙, 2의 보수, UTF-8, Base64 인코딩 이유

사내에서 진행한 스터디 내용을 종합 요약한 글. 질문 세례에도 잘 설명해주신 동료분들께 감사드립니다.(kny님, ljh님, yje님) 1. 드모르간의 법칙 드모르간의 법칙은 논리식에서 not을 분배한다는 것이다. 인터넷에 찾아보면 자료는 많다. 배울점은 다음과 같다. not (A or B) = not A and not B 와 같이 2개 항목에만 적용가능한 것이 아니라 3개 이상의 항목에도 적용가능하다. 프로그래밍을 할 때 활용하기 좋다. 예를 들어 if(!(A != 1 or A != 2)) 라는 구문은 드 모르간의 법칙을 이용하여 if(A ==1 and A == 2) 라고 표현하는 것이 간결하다. 경우의 수를 10가지 고려해야할 때, 8가지를 고려해서 적는 것보다 2가지가 아님을 고려해서 적는것이 유리하..