컴퓨터 시스템 구조

sun202x·2023년 1월 13일
0

운영체제

목록 보기
3/23
post-thumbnail

해당 게시글은 kocw에서 제공하는 금오공과대학교 최태영 교수님의 무료 강의를 공부하고 정리하기 위해서 만들어졌습니다.

컴퓨터 시스템 구조

  • 지금 까지는 cpu가 하나인 컴퓨터 구조를 기준으로 설명
  • 현대 컴퓨터 구조는 Multiprocessors로 이뤄져있다.
    • 발열이나, 성능에서 문제가 있기 때문
    • cpu가 여러개로 이루어진 시스템
  • 이미 예전부터 멀티 프로세서 구조가 등장했다.
    • 1980년대 쯤 부터
    • 하나의 마더 보드에 cpu가 카드처럼 꼽혀져 있있다.
    • 여러개의 cpu가 하나의 메모리에 연결되어 사용된다.
    • 그러나 이런 구조는 모바일이나 개인용 컴퓨터에 들어가기 부담스러운 크기를 가진다.
  • 이것을 개선하기 위해 나온 것이 Multi-core system이다.
    • 여러개의 cpu를 하나의 패키지 내부로 집어 넣은 것을 의미한다.
    • 보통 cpu를 사면 하나의 칩 안에 여러개의 발이 달려 있는 형태인데,
      • 이러한 형태에는 사실 여러 개의 cpu가 들어가 있다.
  • 앞 선 예제와 같이 좀 더 큰 규모는 Multiprocessors 라고 하고 작은 규모는 Multi-core system이라고 한다.
    • 논리적으로는 별 차이가 없고, 공간을 절약하기 위해서 이런 시스템이 나왔다.

Clustered system

  • 앞선 Multiprocessors 구조의 형태로 설계하고, os를 개발하기에는 비용과 시간이 너무 들어가서, 이러한 구조는 모두 사라졌다.
  • 기존 Multiprocessors 구조에서 양산형 cpu가 두 개 정도 들어가는 구조를 Cluster system이라고 한다.
  • 하나의 컴퓨터가 일을 할당 받으면 나머지 cpu에 일을 할당하고
    • 각각의 cpu는 일을 모두 처리하고 나서 다시 일을 할당한 컴퓨터에 돌려준다.
    • 각각의 결과를 종합하여 돌려준다.
  • multiprocessors와 다르게 몇개의 컴퓨터로 구성할지 정하고 허브로 묶기만 하면 되므로 비용이 매우 저렴하다.
  • 요즘 슈퍼 컴퓨터는 적당한 크기의 multiprocessors 시스템을 몇 개 묶어서 클러스터를 구성한 것이다.
    • 중국의 천둥이 세계에서 젤 큰 슈퍼 컴퓨터
  • 이러한 컴퓨터는 일기예측, 핵 개발 같은 데에 쓰인다.
  • 각각의 컴퓨터에 저장장치를 달아두면 수명이 매우 짧아지기 때문에
    • 통합된 저장 장치를 둔다.
    • 이 것을 storage area network(SAN)이라고 한다.
  • 네이버나 대형 포털들이 이러한 클러스터 구조를 사용한다.

멀티프로그래밍

  • 멀티프로그래밍이 등장하면서 가장 크게 변화했다.
  • 멀티프로그래밍이란?
    • 여러명이서 한 컴퓨터에 붙어서 작업을 하는 것
    • 프로세스를 처리하면서 쉬는시간이 생기지 않도록 다음 프로세스를 실행함으로써, 기존 cpu의 쉬는 시간을 단축시켜서 사용하는 것
      • 그렇게 함으로써 실제 실행되는 시간은 큰 차이가 없다고 한다.
    • 시스템의 성능을 극대화하기 위해서 여러개의 프로세스를 메모리에 올리고 이를 통해서 cpu를 할당하는 것
  • 멀티프로그램이 가능해지려면 어떤 프로세스에게 cpu를 쓰게 할지 job scheduling으로 관리해야 한다.
  • 다른 말로 batch system이라고도 한다.
    • 일을 맡겨놓고 한꺼번에 찾아간다고 해서 batch system이라는 이름이 생겼다.

Timesharing

  • cpu 시간을 쪼개서 여러 프로세스에게 그때 그때 나눠주는 시스템을 Timesharing이라고 한다.
  • 사용자는 이로 인해 끊기지 않고 cpu를 사용하는 듯한 경험을 받을 수 있다.
  • Timesharing이 되려면 멀티프로그래밍이 기본적으로 가능한 환경이어야 한다.
  • 멀티 프로그래밍에서 더 진보된 시스템 구조이다.
  • 한 때는 멀티태스킹이라고도 불렸다.
    • 그러나 멀티 프로그래밍과 혼동의 가능성이 있어 Timesharing이라고 부르기로 했다.
  • 기존 batch 형태로 사용되던 시스템을 Timesharing을 통해 중간 결과를 보고 처리할 수 있는 형태로 발전되었다.
  • 이로 인해 더 많은 사용자가 생기게 되었는데, 메모리 같은 경우도 virtual memory를 통해 더 많은 메모리를 제공하는 형태로 발전 되었다.
profile
긍정적으로 살고 싶은 개발자

0개의 댓글