시스템구조 토픽 중 컴퓨터 구조에서 나오는 빈출 토픽에 대해서 알아보도록 하겠습니다.
1. RAID, 2. Endian, 3. ASCII, 4. 2의 보수, 5. CPU 스케줄링
컴퓨터 구조(Computer Architecture)는 컴퓨터의 하드웨어와 소프트웨어의 상호 작용에 방법들을 통해서 컴퓨터의 성능, 효율성, 신뢰성 및 확장성을 결정하게 됩니다. 여기에는 어떤 방법들이 있는지 확인해보고자 합니다.
1. RAID
RAID(Redundant Array of Independent Disks)는 여러개의 하드 디스크를 하나의 논리적 볼륨으로 결하여 데이터를 저장하고 보호하는 기술입니다. RAID는 여러 가지 유형이 있으며, 각 유형은 데이터를 저장하고 보호하는 방법이 다릅니다. RAID는 데이터 손실 위험을 줄이고 성능을 향상시키며 용량을 늘리는 데 사용됩니다.
RAID 레벨
- RAID 0 (Striping) : RAID 0은 스트라이핑이라고도 하며, 데이터를 여러 디스크에 분산 저장합니다. 이 방식은 입출력 성능을 향상시키지만, 하나의 디스크가 고장 나면 모든 데이터가 손실될 수 있습니다.
- 레이드 0은 여러개의 하드 디스크를 병렬로 이어서 한 개의 거대한 디스크로 사용하는 방식으로, 데이터의 입출력이 공평하게 분배되며 이로 인해 입출력 속도와 용량이 증가합니다. 한 개의 하드 디스크만 망가져도 전체 데이터가 파손된다는 단점을 가지고 있다는 것이 특징입니다.
- 최소 필요 하드 2개, 용량은 디스크 용량 * 디스크수 - RAID 1 (Mirroring): RAID 1은 미러링이라고도 하며, 두 개의 디스크에 동일한 데이터를 저장합니다. 이 방식은 데이터의 안정성을 높이지만, 디스크 용량의 절반만 사용할 수 있습니다.
- 레이드 1은 디스크에 있는 데이터들을 복제하여 기록하는데, 디스크가 망가지면 다른 디스크에 기록이 되기 때문에 데이터를 쉽게 복구할 수 있는 장점이 있지만, 2배로 기록해야 하기 때문에 쓰기 속도가 느려지는 단점이 있습니다.
- 최소 필요 하드 2개, 용량은 디스크 용량 - RAID 4: RAID 4는 각 디스크가 패리티 블럭을 공유하는 방식으로 모든 파일은 블럭으로 쪼개지고 각 블럭은 여러 디스크에 저장되지만 균등하진 않고, 패리티를 처리하기 위해 별도의 디스크를 사용합니다.
- 최소 필요 하드 3개, 용량은 디스크 용량 - RAID 5 (Fault Tolerance using Distributed Parity Bit): RAID 5는 스트라이핑과 패리티를 결합한 방식입니다. 패리티는 오류 검출과 복구를 위한 추가 정보입니다.
- 레이드 5는 패리티 비트를 브럭단위로 각 디스크에 두는 방식으로 패리티 비티를 이용해 오류를 검출하여 안정성을 확보하는 방식인데, 효율적인 속도와 하드가 망가져도 복구 가능하다는 장점이 있지만, 패리티 비트를 추가하기 때문에 더 좋은 하드 디스크가 필요합니다.
- 최소 필요 하드 3개, 용량은 디스크 용량 * (디스크 수 - 1) - RAID 6: RAID 6는 RAID 5와 유사하지만, 추가 패리티 블록을 사용하여 두 개의 디스크가 동시에 고장나도 데이터를 복구할 수 있습니다.
- 레이드 6은 레이드 5의 방식에서 두개의 패리티 비트를 사용하는 방식인데, 두 개의 패리티 비트를 사용하기 때문에 더 높은 안정성을 제공하게 됩니다.
- 최소 필요 하드는 4개, 용량은 디스크 용량 * ( 디스크 수 - 2) - RAID 10 (1+0): RAID 10은 미러링과 스트라이핑을 결합한 방식입니다. 이 방식은 데이터의 안정성과 입출력 성능을 동시에 향상시키지만, 디스크 용량의 절반만 사용할 수 있습니다.
- 레이드 10은 두가지를 동시에 활용함으로써 레이드 1보다 높은 성능을 제고하는데, 레이드 0을 통하여 용량을 추가하고 미러링을 함으로써 안정적으로 데이터를 저장할 수 있는 게 특징입니다.
- 최소 필요 하드는 4개, 용량은 디스크 용량 * (디스크 수 / 2)
* 소규모 서버에서는 레이드 0 혹은 레이드 1을 많이 사용하고, 대규모 서버에서는 안정성과 빠른 복구를 우선시해야 하기 때문에 레이드 5 혹은 레이드 6을 이용합니다. 점검하고 이상을 발견하면, 하드만 바꿔서 다시 복구가 가능하기 때문입니다.
2. Endian
Endian이란, 컴퓨터 시스템에서 바이트 순서를 나타내는 방식을 의미합니다. 이는 주로 메모리와 같은 데이터의 저장 및 처리 방식에 영향을 미칩니다.
Endian에는 크게 두 가지 종류가 있습니다.
- 빅 엔디안 (Big Endian): 높은 바이트 값을 먼저 저장하고 뒤따라 낮은 바이트 값을 저장합니다. 예를 들어, 4바이트 정수 0x12345678을 빅 엔디안 방식으로 메모리에 저장하면, 메모리의 높은 주소에서 낮은 주소로 갈 때 12 34 56 78 순으로 저장됩니다.
- 리틀 엔디안 (Little Endian): 반대로, 낮은 바이트 값을 먼저 저장하고 높은 바이트 값을 그 다음에 저장합니다. 위의 예시에서 4바이트 정수를 리틀 엔디안 방식으로 저장하면, 메모리의 높은 주소에서 낮은 주소로 갈 때 78 56 34 12 순으로 저장됩니다.
Endian 방식은 컴퓨터의 하드웨어 디자인에 따라 결정되며, 서로 다른 Endian을 가진 시스템 간 데이터를 주고받을 때는 변환 과정이 필요합니다. 이러한 이유로, 네트워크 통신 등에서는 표준화된 Endian을 사용하는 경우가 많습니다. 이를 네트워크 바이트 순서라고도 부르며, 이는 빅 엔디안 방식을 따릅니다.
3. ASCII Code
ASCII Code란, ASCII (American Standard Code for Information Interchange)는 영문 알파벳을 사용하는 대표적인 문자 인코딩입니다. 이는 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 ASCII에 기초를 두고 있습니다.
ASCII는 7 비트 인코딩으로, 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 총 128개로 이루어져 있습니다. 제어 문자들은 역사적인 이유로 남아 있으며 대부분은 더 이상 사용되지 않습니다. 출력 가능한 문자들은 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자로 이루어져 있습니다.
ASCII는 널리 사용되면서 다양한 ASCII 기반의 확장 인코딩들이 등장했으며, 이들을 묶어서 ASCII라고 부르기도 합니다. 대표적으로 7비트 인코딩을 유지한 ISO/IEC 646과, 원래 아스키코드 앞에 비트 0을 넣어 8비트 인코딩을 만든 IBM 코드 페이지, ISO 8859가 있습니다.
ASCII는 영문 키보드로 입력할 수 있는 모든 기호들이 할당되어 있는 부호 체계이며, 매우 단순하고 간단하기 때문에 어느 시스템에서도 적용가능하다는 장점이 있습니다3. ASCII를 구성하는 1바이트 즉, 8비트 중에서 7비트만 쓰도록 제정된 이유는, 나머지 1비트를 통신 에러 검출을 위해 사용하기 때문이었습니다. 해당 비트를 패리티 비트 (Parity Bit)라고 해서, 이 패리티 비트를 확인함으로써 전송 도중 신호가 변질된 것을 수신 측에서 검출해 내는 것으로 이를 패리티 검사라고 합니다.
4. 2의 보수
2의 보수는 이진수에서 음수를 표현하는 방법 중 하나입니다. 이 방법은 컴퓨터에서 널리 사용되며, 특정 숫자의 2의 보수를 구하려면 해당 숫자의 모든 비트를 반전시킨 후 1을 더하면 됩니다.
예를 들어, 2진수 1010의 2의 보수를 구하려면 다음과 같이 계산합니다
- 먼저, 1010의 모든 비트를 반전시킵니다. 이를 1의 보수라고 합니다. 따라서, 1010의 1의 보수는 0101입니다.
- 그런 다음, 1의 보수에 1을 더합니다. 이를 2의 보수라고 합니다. 따라서, 0101에 1을 더하면 0110이 됩니다.
따라서, 2진수 1010의 2의 보수는 0110입니다.
이 방법은 컴퓨터에서 음수를 표현하고 계산하는 데 사용됩니다.
예를 들어, 컴퓨터에서 -6을 표현하려면 2진수 0110 (즉, 10진수 6)의 2의 보수를 구하면 됩니다. 이 경우, 0110의 1의 보수는 1001이고, 여기에 1을 더하면 1010이 됩니다. 따라서, 컴퓨터에서 -6은 1010으로 표현됩니다.
또 다른 예를들면 -5를 2의 보수 방식으로 표현해 봅시다. 먼저, 양의 5를 2진수로 나타내면, 8비트를 사용하여 '00000101'이 됩니다. 그다음, 이 비트를 모두 반전시키면 '11111010'가 됩니다. 마지막으로, 여기에 1을 더하면 '11111011'이 됩니다. -5는 2의 보수로 '11111011'로 표현됩니다.
이 방식을 사용하면, 컴퓨터는 덧셈 연산만을 사용해서 뺄셈을 수행할 수 있습니다. 예를 들어, 7 - 5를 수행하려면, 7과 -5를 더하는 것으로 계산할 수 있습니다.
이처럼 2의 보수는 이진수에서 음수를 표현하고 계산하는데 매우 중요한 역할을 합니다.
5. CPU 스캐줄링
CPU 스케줄링은 프로세스가 작업을 수행할 때, 언제 어떤 프로세스에 CPU를 할당할지를 결정하는 작업입니다. 이는 시스템의 효율성과 공정성을 높이는 데 중요한 역할을 합니다. 다양한 CPU 스케줄링 알고리즘이 있으며, 각각의 알고리즘은 특정 상황에서 최적의 성능을 발휘합니다.
예를 들어, 선입선출 (First-Come, First-Served, FCFS) 알고리즘은 가장 간단한 CPU 스케줄링 알고리즘으로 프로세스가 도착한 순서대로 CPU를 할당합니다. 예를 들어, P1, P2, P3 세 개의 프로세스가 있고, 각각이 0초, 3초, 5초에 도착했다고 가정해 봅시다. 이 경우, P1은 0초에 도착해 6초에 반환되고, P2는 3초에 도착해 8초에 반환되며, P3는 5초에 도착해 12초에 반환됩니다. 따라서 평균 대기 시간은 (0+3+3) / 3 = 2초가 됩니다.
또 다른 예로, SJF(Shortest Job First) 알고리즘은 각 프로세스의 버스트 시간을 고려하여 가장 짧은 작업부터 처리하는 방식입니다. 이 알고리즘은 선점 스케줄링과 비선점 스케줄링 모두 가능합니다. 예를 들어, P0와 P1 두 개의 프로세스가 있고, 각각의 버스트 시간이 5, 1이라고 가정해봅시다. 이 경우, 선점 스케줄링을 사용하면, P0가 CPU를 선점하여 작업을 수행하는 도중에 P1이 도착하면, P0의 작업을 멈추고 작업 시간이 더 짧은 P1을 먼저 수행한 후 P0의 나머지 작업을 수행합니다.
CPU 스케줄링 종류
- FCFS (First-Come First-Served): 프로세스의 도착 순서대로 CPU를 점유하는 기법입니다.
- SJF (Shortest-Job-First): 하나의 스케줄링이 종료된 후, ready queue에 있는 프로세스 중 CPU를 가장 짧은 시간만을 사용할 것으로 예측되는 프로세스가 CPU를 점유합니다.
- SRTF (Shortest-Remaining-Time-First, Preemptive SJF): ready queue에 새로운 프로세스가 진입할 때마다, 프로세스의 예상 작업 시간과 진행 중인 프로세스의 남은 작업시간을 비교하여, 기다리는 프로세스의 시간이 짧으면 문맥 교환을 합니다.
- Priority Scheduling: 우선순위 priority number를 각각의 프로세서에 할당하고, 높은 우선순위의 프로세서에 우선적으로 CPU를 할당합니다.
- RR (Round Robin): 각 프로세스마다 동일한 크기의 할당시간(time quantum)을 가진다.
- Multilevel Queue: Ready Queue를 여러 개로 분할하고, 각각의 queue의 우선순위를 정하고, 각각의 프로세스는 해당 프로세스의 우선순위에 따라 각각의 queue에 배치되고, queue 간 경쟁을 통해 하나의 queue가 CPU를 점유하는 형태입니다.
이처럼 CPU 스케줄링은 다양한 알고리즘을 통해 시스템의 성능을 최적화하는 데 중요한 역할을 합니다.
이번시간에는 시스템구조 빈출 Topic인 컴퓨터 구조의 1. RAID, 2. Endian, 3. ASCII Code, 4. 2의 보수, 5. CPU 스케줄링에 대해서 알아보았습니다.
다음에는 하드웨어 규모 산정에 대해서 알아보도록 하겠습니다.
읽어주셔서 감사합니다.
'IT★자격증 > 정보시스템감리사 기출문제 풀이' 카테고리의 다른 글
2022년 제 23회 정보시스템 감리사 기출문제 풀이 - 시스템구조(81-85) (116) | 2023.12.23 |
---|---|
정보시스템 감리사 빈출 토픽 - 하드웨어 규모 산정 (152) | 2023.12.22 |
2022년 제 23회 정보시스템 감리사 기출문제 풀이 - 시스템구조(76-80) (131) | 2023.12.20 |
정보시스템 감리사 빈출 토픽 - 페이지 교체 (141) | 2023.12.19 |
정보시스템감리사 빈출 토픽 - 네트워크 주소 (122) | 2023.12.18 |