본문 바로가기

전체 글53

메모리 관리 메인 메모리메인 메모리는 매우 조심스럽게 관리되어야 할 중요한 자원이다. 요즘 사용자들이 집에서 사용하는 일반 컴퓨터는 1960년대 초에 가장 큰 컴퓨터였던 IBM 7094보다 10,000배나 많은 메모리를 탑재하곤 한다. 그러나 프로그램은 더욱 크고 빠른 메모리를 필요로 한다. '일을 끝내기 위하여 시간이 늘어난 만큼, 일 자체도 늘어난다'라는 파킨슨 법칙으로 비유해 보면, '프로그램은 가용한 메모리가 생기는 만큼 크기가 증가'하는 것이다. 모든 프로그래머가 원하는 것은 무한히 크고, 빠르며, 스스로 혼자 사용할 수 있는 메모리다. 더불어 비휘발성 메모리를 원한다. 이 비휘발성이란 전원이 공급되지 않은 상태에서도 그 내용이 유지되는 메모리를 말한다. 또 한가지 중요한 것은 가격이 비싸지 않아야 한다는 .. 2024. 9. 9.
다중컴퓨터 다중컴퓨터에 대해서다중처리기는 모든 CPU가 메모리를 공유한다는 비교적 간단한 통신 모델을 기반으로 하기에 매력적이고 많이 사용되고 있다. 일부 프로세스들은 메시지를 메모리에 스고, 다른 프로세스들은 그것을 읽을 수가 있다. 동기화는 뮤텍스, 세마포어, 모니터 등의 기법으로 이뤄진다. 약간의 단점이 있다면, 대규모의 다중처리기는 만들기가 다소 어렵고 비싸다는 점이다. 이러한 문제를 해결하기 위해 다중컴퓨터에 대한 많은 연구들이 진행되었다. 다중컴퓨터는 긴밀하게 연결된 CPU들로 구성되며, 공유 메모리는 없다고 보면 된다. 그 대신에, 각 CPU는 독립적인 메모리를 갖는다. 이런 시스템은 클러스터 컴퓨터, COWS 등 다양한 이름으로 알려져 왔다. 다중컴퓨터는 구현 비용이 비교적 적다. 각 노드는 사실상 .. 2024. 9. 2.
네트워크 관련 프로토콜 네트워크 프로토콜에 대해서 대부분의 네트워크는 메시지를 보낸 다음 응답을 받을 때 특별한 규칙들을 사용하곤 한다. 예를 들어 보자면, 어떤 환경에서는 파일 전송 메시지를 받으면 목적지에서는 메시지 수신을 나타내는 응답 패킷을 반드시 보내도록 요구받을 수도 있다. 다른 환경에서는, 응답 패킷을 기대하지 않을 수도 있는 것이다. 컴퓨터가 서로 통신할 시 지켜야 할 약속의 집합을 다른 말로 '프로토콜'이라고 부른다. 라우터-라우터 프로토콜, 호스트-호스트 프로토콜 등 다양한 프로토콜이 존재하는 것이다. 네트워크는 서로 다른 프로토콜이 층 구조를 이루고 있는 일명, 프로토콜 스택을 사용한다. 각 층에서는 서로 다른 이슈를 처리한다고 보면 된다. 예로, 프로토콜의 아래층에는 비트 스트림에서 패킷의 시작, 그리고 .. 2024. 8. 27.
네트워크에 대해서 네트워크 서비스란 컴퓨터 네트워크는 호스트, 그리고 프로세스들에게 서비스를 제공하곤 한다. 그중 연결 지향 서비스는 전화 시스템을 모델링하는 것으로 보면 된다. 전화 통신을 하기 위해서는 전화기를 들고 번호를 누른 다음 용건에 대해서 대화를 하고, 그리고 전화를 내려놓는다. 마찬가지로 연결 지향 서비스를 사용하고자 한다면, 사용자는 연결을 설정하고, 사용한 다음, 연결을 해제한다. 연결의 핵심 측면은 튜브처럼 동작하는 것이다. 다시 말해서, 전송자는 한쪽 끝에서 객체를 보내고, 수신자는 다른 끝에서 같은 순서로 객체를 꺼내는 것이다. 연결 없는 서비스는 편지 시스템을 예로 보면 되겠다. 각 메시지 안에는 주소가 담겨 있고, 각각은 완전히 독립적으로 시스템을 통해서 라우팅이 된다. 두 메시지가 같은 목적지.. 2024. 8. 26.
분산 시스템 네트워크 하드웨어에 대해서 우리가 친숙하게 사용하고 있는 네트워크는 크게 빌딩, 혹은 캠퍼스 크기를 커버하는 LAN(Local Area Network)와 도시, 국가 등 큰 단위를 커버하는 WAN(Wide Area Network)로 구분이 된다. LAN에서 가장 중요한 종류를 꼽아 본다면 이더넷(Etherent)으로 볼 수가 있다. WAN의 예로는 인터넷을 보면 된다. 인터넷을 기술적으로는 하나의 네트워크가 아니라 수 천 개의 독립된 네트워크 집합체로 볼 수가 있다. 이더넷은 IEEE 표준 802.3에 상세하게 기술이 되어 있다. 동축 케이블로 구성되며 여러 개의 컴퓨터가 연결될 수 있는 구조다. 케이블을 이더넷이라고 부른다. 이런 이름은 발광 에테르와 관련이 있는데 이는 한때 전자기 복사가 전파되는 매.. 2024. 8. 25.
다중처리기 시스템 다중처리시스템에 대해서 컴퓨터 산업 자체가 처음 시작되었을 때부터 보다 더 많은 컴퓨팅 능력을 제공할 수 있게끔 하기 위해서 지속적으로 노력했다. ENIAC은 초당 300개의 연산을 처리할 수가 있었는데, 이것은 당시 계산기에 비해서 천배 가까이 빠른 성능이었지만 사람들은 여전히 만족하지 않았다. 요즘 우리는 ENIAC에 비해서는 백만 배 이상 빠른 컴퓨터를 사용하고 있지만 여전히 배고프다. 예를 들어 천문학자는 우주를 심층적으로 이해하기 위해서, 생물학자는 인간 유전자의 기능을 낱낱이 파헤치기 위해서, 항공학자는 보다 안전한 비행기를 개발하기 위해 많은 CPU 사이클을 요구하고 있다. 지금껏 빠른 컴퓨터를 위해 대표적인 접근 방법을 보면 클록 속도를 높이는 것이었다. 그러나, 우리는 클록 속도의 근본적.. 2024. 8. 20.