* 들어가는말
컴퓨터 시스템의 시작의 마지막 포스팅이다.
1장에서는 컴퓨터에 대한 전반적인 이해를 서술하기 때문에 복잡한 면이 있을것이라 생각한다.
하지만 시작부터 모든것을 배운다기보다는 그냥 이런게 있다 싶은 정도로만 이해하고 넘어가면 될 듯 하다.
나머지 부분은 뒤에서 세세하게 다룰 수 있기 때문이다.
8. 네트워크
네트워크는 상당히 복잡하다.
외부 요인이 상당히 얽혀있고 어느부분이 문제점인지 쉽사리 판별하기 힘든 분야이다.
하지만 네트워크 또한 컴퓨터의 입장에서 보면 입출력 장치의 하나로 볼 수 있다.

- 우리가 가진 컴퓨터의 메인메모리에서 바이트 정보를 네트워크를 통하여 전달한다.
- 네트워크를 통하여 다른 컴퓨터의 메인메모리에 바이트 정보가 복사된다.
- 이러한 과정이 네트워크이다.
간단하게 살펴보니 네트워크라는 것도 별 어려움이 없다고 생각들지 않는가?
컴퓨터가 표현하는 0과 1의 정보를 그저 입출력 장치를 활용하여 복사하여 전달할 뿐이다.
우리는 이런 과정을 통하여 e-mail, web 등 많은 서비스를 이용하고 있다.
9. Amdahl의 법칙
Amdahl 법칙은 다음과 같은 내용을 답고 있다.
- 시스템의 개선은 성능에 얼마나 큰 영향을 미치는가?
이를 위하여 'Gene Amdahl'이 직관적인 계산식을 제시했다.

먼저 정의를 짚고 넘어가보자.
Told : 기존 시스템에서 소요되는 시간
알파 : 개선하고자 하는 것이 전체 시스템에서 담당하는 비율
k : 개선 비율
여기서 특정한 부분을 개선한다고 생각하고 계산식을 짚어 넘어가보자.
1. Told * a : 특정 부분이 기존에 소모되는 시간이다.
2. Told * a / k : 개선을 하고 난 뒤의 소모되는 시간이다.
3. Tnew : 아직 개선되지 않은 (1-a)Told와 개선된 a*Told/k를 더한 값이 최종적으로 수정된 소모시간이다.
4. S : Told와 Tnew를 나누어 개선된 비율을 살펴본다.
여기서 눈여겨 볼 사항은 다음과 같다.

전체 시스템에서 60%의 영향력을 미치는 부분의 성능을 3배 향상시켰다고 가정해보자.
위의 계산식을 이용하면 단지 1.67배 정도의 성능 향상이 이루어졌다.
생각보다 큰폭으로 향상되지 않음을 의미한다.
즉, 어떠한 시스템의 성능을 대폭 향상시키기는 상당히 어려움을 보여준다고 할 수 있다.
10. 동시성과 병렬성
성능 개선을 위하여 대표적으로 가지는 특징들이 동시성과 병렬성이다.
동시성 : 여러개를 한번에 처리하는 능력
병렬성 : 동시성을 이용하여 빠르게 동작을 수행한다.
이는 멀티프로세서 시스템으로 컴퓨터에 구현이 되었으며
최근에는 하이퍼 쓰레딩이라는 기법을 이용하여 성능이 더 좋아졌다.
이러한 동시성과 병렬성을 직관적으로 확인할 수 있는것이 윈도우이다.
윈도우에서 우리는 웹서핑을 하면서 노래를 듣고 때로는 게임도 틀어놓는다.
이렇듯 한 윈도우에서 여러개의 작업이 이루어지도록 하는 것이 동시성과 병렬성의 예시이며,
컴퓨터 성능에 큰 영향을 미치는 요인이다.
11. 컴퓨터 시스템의 추상화
컴퓨터 시스템에서는 추상화가 매우 중요하다.
이는 복잡한 문제를 단순화 시킬 수 있는 도구이다.
예를 들자면,
우리는 파일을 통하여 입출력장치를 추상화하고,
가상 메모리를 통하여 프로그램 메모리를 추상화하고,
실행중인 프로그램을 통하여 프로세스를 추상화한다.
이렇듯 컴퓨터에 있어서 중요한 개념중 하나가 추상화이다.
12. 정리
우리는 다양한 정보들을 훑어봤다.
컴퓨터는 하드웨어와 시스템 소프트 웨어로 구성되었다.
컴퓨터는 정보를 비트들의 그룹으로 표현한다.
컴파일러와 링커를 통하여 실행파일이 생성된다.
컴퓨터는 계층적인 구조를 이루고 있다.
운영체제는 하드웨어와 응용프로그램 사이의 중간자 역할을 수행한다.
이제 한번씩 훑어봤으니 좀 더 자세한 컴퓨터의 세계로 나아가보자.
'Computer System' 카테고리의 다른 글
| 1. 컴퓨터 시스템의 시작(2) (0) | 2021.01.04 |
|---|---|
| 1. 컴퓨터 시스템의 시작(1) (0) | 2020.12.28 |