728x90

CS 42

[Network] OSI 7계층

: OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 국제표준화 기구에서 개발한 모델로 네트워크 프로토콜 통신을 7개의 계층으로 나눔으로서 프로그래머가 하위 수준의 단계를 크게 신경쓰지 않고 개발 할 수 있으며 계층별 독립성과 단계층 계층으로 인해 오류처리가 수월하다는 장점이 있다. 물리계층(Physical Layer) - 데이터를 전송하는 계층(주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송) - 통신 단위는 비트이며 이것은 1과 0으로 나타내어진다 - 단지 데이터를 전달만 할뿐 전송하려는(또는 받으려는) 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다. 대표적인 장비는 통신 케이블, 리피터, 허브 데이터 링크계층(Dat..

CS/네트워크 2021.08.22

[OS] 프로세스와 쓰레드

프로세스(Process) : OS가 작업을 할당하는 단위, 현재 실행 중인 프로그램(program in executing)을 뜻한다. 일반적으로 잡(job)이라는 용어와 혼용해 사용하기도 한다. - 독자적인 메모리 공간을 가지고 다른 프로세스와 통신하기 위해 시스템콜을 호출하여 진행해야 한다. - 컨텍스트 스위치 과정에서 모든 영역에 대하여 PCB에 저장하고 넘겨야되기에 쓰레드보다 많은 시간이 소요된다. 프로세스의 주소 영역(메모리 영역) 프로세스의 주소 영역은 크게 코드(Code), 데이터(Data), 힙(Heap), 스택(Stack)영역으로 구분된다. 코드 영역은 실행할 프로그램 코드가 저장되는 부분이다. 데이터 영역은 전역 변수(global variable)나 static 변수 등 프로그램이 사용하..

CS/OS 2021.08.22

[OS] 메모리 구조(Memory Structure)

프로그램 실행 순서 프로그램의 정보를 읽어 메모리에 로드되는 과정을 볼 수 있다. 프로그램이 실행하게 되면 OS는 메모리(RAM)에 공간을 할당해준다. 할당해주는 메모리 공간은 4가지(Code, Data, Stack, Heap)가 있다. 코드(Code) 우리가 작성한 소스코드가 들어가는 부분. 즉, 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code)영역이라고 부른다. 코드 영역은 실행파일을 구성하는 명령어들이 올라가는 메모리 영역으로 함수, 제어문, 상수 등이 여기에 저장된다. : 프로그램 언어로 작성된 내용들이 컴파일되어 저장되어 있다. 데이터(Data) 전역변수와 static변수가 할당되는 영역 프로그램의 시작과 동시에 할당되고, 프로그램이 종료되어야 메모리가 소멸되는 영역 스택(Stack)..

CS/OS 2021.08.21

[OS] 메모리(Memory)

메모리의 기본개념 메모리는 CPU와 같은 반도체 하드웨어로서 일종의 데이터를 저장하는 저정장치 역할을 수행한다. 데이터를 읽고 쓰는 속도가 매우 빠르며, CPU가 직접 접근이 가능하다. 또한 전원이 꺼지면 저장 돼 있던 데이터가 모두 사라지는 특성을 가지고 있기 때문에 단순히 주소로서만 접근하는 저장공간이라고 할 수 있다. 소프트웨어 즉, 프로그램이 실행되기 위해서는 반드시 그 내용이 메모리에 저장돼야 하고 컴퓨터의 메모리 관리를 통해 하드웨어는 CPU가 주소만을 가지고 메모리에 있는 데이터를 읽거나 쓸 수 있도록 한다. 운영체제의 메모리 관리라는 것은 프로세스가 필요한 메모리를 어떻게 얼마만큼 할당해 줄 것인가, 프로세스가 알고 있는 주소를 통해서 실제 메모리에 어떻게 접근하도록 하는 것인가 라는 할당..

CS/OS 2021.08.21

[컴퓨터 기초] 16진수(hexadecimal)

16진수 16진수란 16을 기수로 하는 번호체계를 말한다. 즉, 그것은 다음 숫자를 위해 새로운 위치를 추가하기 전에 16개의 일련 번호를 기본 단위로 포함하는 번호체계이다. 16진법에서는 숫자 0~9까지와 영문 알파벳 문자 A~F까지를 사용한다. 아래의 표에 모두 같은 값을 갖는 2진수와 10진수 그리고 16진수를 나타내었다. 16진수는 1byte 거의 항상 8bit 정의되는 컴퓨터에서 2진수를 표현하는 편리한 방법이다. 컴퓨터 기억장소의 내용을 보며줄때, 하나의 16진수 숫자는 4개의 2진수 숫자를 표시할 수 있다. 두 개의 16진수 숫자는 8 bit, 즉 1byte를 표현할 수 있다. 컴퓨터과학에서는 숫자를 10진수나 2진수 대신 16진수로 표현하는 경우가 많다. 컴퓨터에서 데이터를 처리하기 위해 ..

CS/컴퓨터 2021.08.20

[컴퓨터 기초] 32bit 컴퓨터와 64bit 컴퓨터 차이점

bit는 cpu가 처리하는 데이터의 최소 단위인 레지스터의 크기 레지스터는 CPU의 처리의 지연 시간을 줄이기 위해 사용하고 있는 CPU 내부의 임시 기억장치 ( 매번 메모리에서 가져와서 사용할 수 없기에 빠르게 연산하기 위해 레지스터에 임지로 저장하였다가 사용한다. ) ** 용량이 클수록 더 많은 데이터를 메모리에 가져와서 저장할 수 있기 때문에 더 빠르다.(메모리 접근이 줄어듦으로) 32bit 기준으로 32bit 레지터스라고 하면 한번에 2의 32제곱 ⇒ 4GB ⇒ 레지스터가 표현할 수 있는 최대의 값(메모리제한) 따라서 32bit 컴퓨터는 2^32 = 4294967296까지 밖에 저장하지 못한다. 그래서 32bit 컴퓨터는 최대 메모리를 4GB까지 밖에 상요하지 못함 ⇒ 메모리 주소값을 한번에 표현..

CS/컴퓨터 2021.08.17

[컴퓨터 기초] 2진수(binary)

2진수 2진수는 2를 기반으로 하는 숫자체계로서, 컴퓨터 내에서 데이터를 표현하기 위해 사용된다. 2 진수는 "0"과 "1"이라는 오직 2가지 종류의 숫자로만 구성된다. 비트란 이진법의 최소단위로, 숫자 0,1로 신호를 나타내는 최소의 단위를 비트라 합니다. 비트를 가지고 수학적 연산을 하기 위해, 컴퓨터는 2진수라는 수 체계를 사용한다. 수체계 우리가 사용하는 수 체계는 10진수이다. 10진수는 0부터 9까지 10개의 숫자를 이용하여 값을 표현할 수 있다. 10진수에서 각 자리는 10의 거듭제곱을 나타낸다. 가장 오른쪽 수는 1의 자릿수(10^0100 ). 오른쪽에서 두 번째 수는 10의 자릿수(10^1101 ). 오른쪽에서 세 번째 수는 100의 자릿수(10^2102 ) 컴퓨터는 전기적 신호 켜짐(1..

CS/컴퓨터 2021.08.17

[컴퓨터 기초] bit, byte

비트(bit) 정보를 저장하고 연산을 수행하기 위해 컴퓨터는 비트(bit)라는 측정 단위를 쓴다. 비트는 이진 숫자라는 뜻을 가진 "binary digit"의 줄임말이며, 0과 1 두 가지 값만 가질 수 있는 측정 단위이다. 디지털 데이터를 여러비트들로 나타냄으로써 2가지 값만을 가지고도 많은 양의 정보를 저장할 수 있다. 또한 컴퓨터는 저장되어 있는 데이터를 수정하기 위해 비트에 수학적 연산을 수행할 수 있다. 비트열 하나의 비트는 0과 1, 이 두 가지의 값만 저장할 수 있다. 컴퓨터 내부에서 물리적 표현될 때는, 켜고 끌 수 있고 스위치라고 생각할 수 있다.(켜기 = 1, 끄기 = 0) 비트 한개는 많은 양의 데이터를 나타내기에 부족하다. 그렇기 때문에 여러 숫자 조합을 컴퓨터에 나타내기 위해 비트..

CS/컴퓨터 2021.08.17

[컴퓨터 기초] 하드웨어

하드웨어 하드웨어는 컴퓨터를 물리적으로 구성하는 요소이며, 컴퓨터에 연결되어 추가적인 기능을 수행한다. 하드웨어는 다양한 형태의 구성 요소가 있다. (컴퓨터 본체, CPU, 하드 디스크, 마우스, 모니터, 비디오 카드, 사운드 카드 등 손으로 만질 수 있는 모든 것) 즉, 하드웨어는 컴퓨터의 육체이고, 하나의 "기계"이다. 하드웨어는 "물건"이기 때문에, 인터넷으로 다운로드받을 수가 없습니다. 컴퓨터 가게에 가서 구입해야한다. 컴퓨터 하드웨어에서의 데이터 흐름 컴퓨터의 하드웨어는 크게 중앙처리장치, 기억장치, 입출력장치로 구성된다. 중앙처리장치(Central Processing Unit, CPU)는 프로세스라고 불리기도 하는데, 입력장치에서 받은 명령을 실제로 처리한다. CPU가 1초에 얼마나 많은 연산..

CS/컴퓨터 2021.08.17

[OS] Operating System

운영체제 또는 오퍼레이팅 시스템(Operating System)은 시스템 하드웨어를 관리할 뿐만 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저 위에서 실행되기도 한다. 소프트웨어 : CPU,메모리,보조기억장치,네트워크 등의 자원들을 잘 관리하여 응용 소프트웨어들에게 제공해주는 역할 하드웨어 추상화 플랫폼 또한 중요한 개념! 추상화는 프로그래밍에 있어서 매우 중요하고 유용한 개념이다. 컴퓨터 과학에서 추상화 (abstraction) : 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 말한다. 운영 체제에서의 추상화 (abstra..

CS/OS 2021.08.17
728x90