CS(18)
-
CS : 데이터 구조와 처리
여러 문자로 이뤄진 시퀀스를 문자열이라고 한다. 배열과 마찬가지로 문자열을 연산할 때도 그 길이를 알아야 한다. 한 가지 접근 방법은 문자열 안에 길이를 저장하는 것이다. 예를 들어 첫 번째 바이트에 문자열 길이를 넣을 수 있다. 이 방법은 잘 작동하지만 문자열 길이가 255자로 제한된다는 단점이 있다. 그리고 문자열은 바이트라서 메모리 정렬(alignment)이 그때그때 다를 수 있다. 하지만 길이를 저장하기 위해 몇 바이트를 할당하는 경우 길이 정보는 반드시 올바른 메모리 정렬 경계에 있어야 한다. C는 PDP-11 어셈블리 언어의 .ASCIZ 의사명령어(pseudo-instruction)에서 빌려온 다른 접근 방법을 사용한다. C는 다른 언어와 달리 문자열을 위한 전용 데이터 타입을 제공하지 않는다..
2022.02.15 -
CS : 네트워킹
네트워킹 네트워크는 일반적으로 두 가지로 구분한다. 1) 근거리 네트워크(LAN, local area network)는 집이나 사무실 같이 좁은 지리적 영역을 묶는다. 2) 광역 네트워크(WAN, wide area network)는 더 넓은 지리적 영역을 묶는다. 최초의 네트워크는 전신 네트워크였고, 전신 네트워크는 나중에 전화 네트워크로 발전했다. 초기 컴퓨터 네트워크는 냉전 시대의 방어 시스템인 반자동 지상 환경(SAGE, Semi-Automatic Ground Environment)의 일부분이었다. SAGE는 전화 네트워크와 모뎀을 사용해 각 지점 사이의 통신을 수행했다. 벨 연구소에서 개발된 UUCP(UNIX-to-UNIX copy)라는 일련의 컴퓨터 프로그램이 1979년 외부 세계로 배포됐다. ..
2022.02.08 -
CS : 컴퓨터 아키텍쳐와 운영체제
프로그램에 버그가 있으면 어떤 일이 벌어질까? 버그가 있어서 사용자 프로그램 1이 차지한 메모리를 덮어쓰거나, 심지어 OS의 메모리를 덮어쓴다면 어떤 일이 벌어질까? 누군가 의도적으로 시스템에 실행 중인 다른 사라므이 프로그램을 들여다보거나 변경하는 프로그램을 작성한다면? 각 프로그램을 분리해서 이런 시나리오가 아예 불가능하게 할 수 있도록 오늘날 대부분의 마이크로프로세서에는 메모리 관리 장치(MMU, memory management unit)가 들어있다. MMU가 들어 있는 시스템은 가상주소(virtual address)와 물리주소(physical address)를 구분한다. 프로그램은 가상 주소를 사용해 작성되고, MMU는 가상 주소를 물리 주소로 변환해 준다. MMU는 가상 메모리 주소를 두 부분으..
2022.02.04 -
CS : 메모리와 디스크의 핵심 : 순차논리
순차논리 -컴퓨터는 비트를 어떻게 기억하는가 순차논리라는 말은 순서(sequence)라는 말에서 비롯된 용어다. 순서는 '시간적으로 어떤 값 뒤에 오는 다른 값'이라는 뜻이다. 사람이 직관적으로 시간을 안다고 해서 디지털 회로에서도 시간을 자연스럽게 다룰 수 있다는 뜻은 아니다. 우리는 디지털 회로에서 시간을 어떻게든 만들어내야 한다. 우리는 주기 함수를 사용해 시간을 측정할 수 있다. 예를 들어. 지구의 자전이 바로 주기적 함수다. 지구가 한 바퀴를 다 돌면 이를 하루(1일)라고 부른다. 이 하루를 더 잘게 나눠서 시간, 분, 초 등으로 구분을 한다. 컴퓨터의 경우 전자공학을 사용하기 때문에 주기적인 전기 신호가 필요하다. 전자가 스위치를 때리게 하면 이런 신호를 만들 수 있다. 발진자 좀 더 안정적인..
2022.01.28 -
CS : 문자를 사용한 수 표현, 색을 표현하는 방법
1. 문자를 사용한 수 표현 사람들은 컴퓨터 간에 통신이 시작된 초기부터 더욱 많은 정보들을 송수신을 하고 싶어했다. 단순한 2진 데이터를 보내고 싶었지만 생각보다 복잡한 일이었다. 아스키코드 중 상당수가 제어 문자로 되어있었고 이런 제어 문자는 시스템에 따라 처리하는 방식이 달랐기 때문이다. 그리고 몇몇 시스템은 7비트만 송수신 할 수 있었다. (1) 출력 가능하게 변경한 인코딩 출력 가능하게 변경한 인코딩 Quoted-Printable encoding은 쿼티드 프린터블 인코딩, 또는 QP 인코딩이라고 부른다. 8비트 데이터를 7비트 데이터만 지원하는 통신 경로를 통해 송수신하기 위해 고안된 인코딩 방법이다. 특히 전자우편 첨부를 처리하기 위해 만들어졌다. QP 인코딩은 몇가지 추가 규칙 있는데, 주르..
2022.01.22 -
CS : 컴퓨터 내부의 언어 체계
1. 언어란 무엇인가 모든 언어의 뜻은 기호의 집합으로 인코딩(encoding) 된다. (1) 인코딩이란? 문자 인코딩(영어: character encoding) 또는 텍스트 인코딩(text encoding)[1] 또는 줄여서 인코딩은 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말한다. 넓은 의미의 컴퓨터는 이러한 신호를 입력받고 처리하는 기계를 뜻하며, 신호 처리 시스템을 통해 이렇게 처리된 정보를 사용자가 이해할 수 있게 된다. 하지만 의미를 기호로 인코딩하는 것만으로는 충분하지 않다. 언어가 제대로 작동하려면 의사소통하는 당사자들이 모두 같은 문맥(context)을 공유해서 같은 기호에 같은 뜻을 부여할 수 있어야 한다. (2) 문맥이란? 어떤 주어진 언어표현이 나..
2022.01.18