1.1 In a multiprogramming and time-sharing environment, several users share the system simultaneously. This situation can result in various security problems. What are those problems?
다중 프로그래밍 및 시분할 환경에서 여러 사용자가 동시에 시스템을 공유합니다.
이러한 상황은 다양한 보안 문제를 초래할 수 있습니다.
그 문제들은 무엇입니까?
a. What are two such problems?
Answer:
1. One user can read the private data of another user - privacy.
한 사용자가 다른 사용자의 개인 데이터(프라이버시)를 읽을 수 있습니다.
2. One user can corrupt the private data of another user - integrity.
한 사용자가 다른 사용자의 개인 데이터를 손상시킬 수 있습니다 - 무결성
3. One user can prevent another user from getting anything done - denail of service
한 사용자는 다른 사용자가 수행하는 작업을 방해할 수 있습니다. 서비스 거부입니다.
b. Can we ensure the same degree of security in a time-shared machine as in a dedicated machine? Explain your answer.
Answer:
There are two answers, either one correct.
Yes - if we can ensure that the operating system prevents any sharing of data between users, either for reading or writing, and fairly shares the computer, then we can achieve the same level of security.
No - we can never be sure that our software doesn't have bugs, so we can never be sure that we prevent all sharing of data and fairly allocate computer resources.
두 가지 답이 있습니다. 둘 중 하나가 정답입니다.
예 - 운영 체제가 읽기 또는 쓰기를 위해 사용자 간에 데이터 공유를 방지하고
컴퓨터를 공정하게 공유하도록 보장할 수 있다면 동일한 수준의 보안을 달성할 수 있습니다.
아니오 - 우리는 소프트웨어에 버그가 없다고 확신할 수 없으므로 모든 데이터 공유를 방지하고
컴퓨터 리소스를 공정하게 할당한다고 확신할 수 없습니다.
1.2 The issue of resource utilization shows up in different forms in different types of operating systems. List what resources must be managed carefully in the following settings.
리소스 활용 문제는 다양한 유형의 운영 체제에서 다양한 형태로 나타납니다.
다음 설정에서 신중하게 관리해야 하는 리소스를 나열합니다.
a. Mainframe or minicomputer systems
b. Workstations connected to servers
c. Handheld computers
Answer:
a. Mainframes: memory and CPU resources, storage, network bandwidth.
b. Workstations: memory and CPU resouces
c. Handheld computers: power consumption, memory resources.
메인프레임: 메모리 및 CPU 리소스, 스토리지, 네트워크 대역폭.
워크스테이션: 메모리 및 CPU 리소스
Handheld 컴퓨터: 전력 소비, 메모리 리소스.
1.3 Which of the functionalities listed below need to be supported by the operating system for the following two settings: (a) handheld devices and (b) real-time systems.
(a) 핸드헬드 장치 및 (b) 실시간 시스템의 두 가지 설정에 대해
운영 체제에서 지원해야 하는 아래 나열된 기능은 무엇입니까?
a. Batch programming
b. Virtual memory
c. Time sharing
Answer:
For real-time systems, the operating system needs to support virtualmemory and time sharing in a fair manner. For handheld systems, the operating system needs to provide virtual memory, but does not need to provide time-sharing. Batch programming is not necessary in both settings.
실시간 시스템의 경우 운영 체제에서 다음을 지원해야 합니다.
공정한 방식으로 가상 메모리 및 시간 공유 기능. 핸드헬드 시스템의 경우,
운영 체제는 가상 메모리를 제공해야 하지만 시간 공유를 제공해야 합니다.
두 설정 모두 배치 프로그래밍이 필요하지 않습니다.
1.4 Describe the differences between symmetric and asymmetric multiprocessing. What are three advantages and one disadvantage of multiprocessor systems?
대칭 및 비대칭 다중 처리 간의 차이가 무엇인지 설명하십시오.
다중 프로세서 시스템의 세 가지 장점과 한 가지 단점은 무엇입니까?
Answer:
I/O는 모든 CPU에서 동작하며 대칭적 멀티프로세싱은 모든 프로세서를 동등하게 취급한다.
비대칭 다중 처리에는 하나의 마스터 CPU가 있고 나머지 CPU는 슬레이브입니다.
마스터는 슬레이브 간에 작업을 분배하고 I/O는 일반적으로 마스터만 수행합니다.
다중 프로세서는 전원 공급 장치, 하우징 및 주변 장치를 복제하지 않음으로써 비용을 절감할 수 있습니다.
프로그램을 더 빨리 실행할 수 있고 안정성을 높일 수 있습니다.
다중 프로세서는 단일 프로세서 시스템보다 하드웨어와 소프트웨어가 모두 복잡합니다.
1.5 Distinguish between the client–server and peer-to-peer models of distributed systems.
분산 시스템의 클라이언트-서버 모델과 P2P 모델을 구별합니다
Answer:
클라이언트-서버 모델은 클라이언트와 서버의 역할을 확실하게 구분합니다.
이 모델에서 클라이언트는 서버에서 제공하는 서비스를 요청합니다.
피어 투 피어 모델은 그렇게 엄격한 역할은 없습니다. 실제로 시스템의 모든 노드는 피어로 간주되므로
클라이언트나 서버 또는 둘 다로 작동합니다. 노드는 다른 피어 또는 노드에서 서비스를 요청할 수 있습니다.
노드는 실제로 시스템의 다른 피어에 이러한 서비스를 제공할 수 있습니다.
예를 들어 생각해보자
요리 레시피를 공유하는 노드 시스템. 클라이언트-서버 모델에서 모든 레시피는
서버와 함께 저장됩니다. 클라이언트가 레서피에 액세스하려면 레서피를 요청해야 합니다.
지정된 서버. 피어 투 피어 모델을 사용하여 피어 노드는 다른 피어 노드에게 다음을 요청할 수 있습니다.
지정된 레시피. 요청된 레시피가 있는 노드(또는 아마도 노드)는 레시피를
노드를 요청합니다. 각 피어가 어떻게 클라이언트 역할을 하는지(즉, 레시피를 요청할 수 있음)
서버로 (레시피를 제공할 수 있습니다.)
1.6 Consider a computing cluster consisting of twonodes running adatabase. Describe two ways in which the cluster software can manage access to the data on the disk. Discuss the benefits and disadvantages of each.
데이터베이스를 실행하는 두 개의 노드로 구성된 컴퓨팅 클러스터를 고려하십시오
클러스터 소프트웨어가 디스크의 데이터에 대한 액세스를 관리할 수 있는 방법에 대해 두 가지를 설명하시오
각각의 장점과 단점에 대해 서술하시오
Answer:
다음 두 가지 대안을 고려해보십시오 : 비대칭 클러스터링 및 병렬 클러스터링.
비대칭 클러스터링에서는 한 호스트가 데이터베이스 응용 프로그램을 실행하고 다른 호스트는 간단히 모니터링합니다.
서버가 실패하면 모니터링 호스트가 활성 서버가됩니다. 이는 장애 허용을 제공하기에 적합합니다.
그러나 두 호스트의 처리 능력을 활용하지 않습니다.
병렬 클러스터링에서는 데이터베이스 응용 프로그램을 두 호스트에서 병렬로 실행할 수 있습니다.
병렬 클러스터를 구현하는 것의 어려움은 공유 디스크의 파일에 대한 분산 잠금 메커니즘을 제공하는 것입니다.
1.7 What is the purpose of interrupts? What are the differences between a trap and an interrupt? Can traps be generated intentionally by a user program? If so, for what purpose?
Answer:
인터럽트는 시스템 내에서 하드웨어에서 생성된 흐름 변경입니다.
인터럽트 핸들러가 호출되어 인터럽트의 원인을 처리합니다. 그런 다음 제어는 중단된 문맥과 명령어로 반환됩니다.
트랩은 소프트웨어에서 생성된 인터럽트입니다. 인터럽트는 장치 폴링이 필요하지 않도록 I/O 완료를 신호로 사용할 수 있습니다.
트랩은 운영 체제 루틴을 호출하거나 산술 오류를 잡는 데 사용할 수 있습니다.
1.8 Direct memory access is used for high-speed I/O devices in order to avoid increasing the CPU´s execution load.
a. How does the CPU interface with the device to coordinate the transfer?
b. How does the CPU know when the memory operations are complete?
c. The CPU is allowed to execute other programs while the DMA controller is transferring data. Does this process interfere with the execution of the user programs? If so, describe what forms of interference are caused
고속 I/O 장치에서는 직접 메모리 접근(Direct Memory Access, DMA)을 사용하여 CPU의 실행 부하를 증가시키지 않도록합니다.
a. CPU는 어떻게 장치와 인터페이스하여 전송을 조정합니까?
b. CPU는 어떻게 메모리 작업이 완료되었는지 알 수 있습니까?
c. DMA 컨트롤러가 데이터를 전송하는 동안 CPU는 다른 프로그램을 실행할 수 있습니다.
이 프로세스는 사용자 프로그램의 실행에 방해가 됩니까? 그렇다면 어떤 종류의 방해가 발생하는지 설명하세요.
Answer:
CPU는 장치에 의해 독립적으로 액세스 할 수있는 특수 레지스터에 값들을 작성함으로써 DMA 작업을 시작할 수 있습니다.
장치는 CPU에서 명령을받으면 해당 작업을 시작합니다. 장치가 작업을 완료하면 CPU에 인터럽트하여 작업 완료를 알립니다.
장치와 CPU는 동시에 메모리에 액세스 할 수 있습니다. 메모리 컨트롤러는 두 개체에 대해 메모리 버스에 공정하게 액세스할 수 있습니다.
따라서 CPU는 메모리 버스에 액세스하기 위해 장치와 경쟁해야하기 때문에 최대 속도로 메모리 작업을 발행하지 못할 수 있습니다.
1.9 Give two reasons why caches are useful. What problems do they solve? What problems do they cause? If a cache can be made as large as the device for which it is caching (for instance, a cache as large as a disk), why not make it that large and eliminate the device?
캐시가 유용한 이유를 두 가지 제시해보세요.
캐시가 해결하는 문제는 무엇인가요?
캐시가 일으키는 문제는 무엇인가요?
캐시를 캐싱하는 디바이스와 같은 크기로 만들 수 있다면 (예 : 디스크와 같은 크기의 캐시),
왜 해당 디바이스를 제거하고 그 크기로 캐시를 만들지 않는 것인가요?
Answer:
캐시는 두 가지 이유로 유용합니다.
첫째, 캐시는 속도가 느린 디바이스와 빠른 CPU 간의 속도 차이를 줄입니다.
둘째, 캐시는 같은 데이터에 대한 반복적인 액세스를 줄여 메모리 액세스를 줄입니다.
캐시는 메모리와 CPU 간의 빠른 데이터 교환을 통해 속도 향상을 제공하므로 메모리 대역폭과 CPU 실행 속도 문제를 해결합니다.
그러나 캐시가 일으키는 문제도 있습니다.
예를 들어, 캐시 일관성 문제는 캐시에서 복제된 데이터와 원래 데이터 간의 불일치 문제입니다.
또한, 큰 캐시는 메모리에 대한 캐시 미스 확률이 줄어들지만, 그만큼 캐시의 관리 오버헤드가 증가하고,
캐시 크기가 너무 크면 캐시에 저장된 데이터가 오래되거나 쓸모없어질 가능성이 있습니다.
만약 캐시를 캐싱하는 디바이스와 같은 크기로 만들 수 있다면
왜 그 크기로 캐시를 만들어서 디바이스를 제거하지 않는 것일까요?
이는 캐시를 캐싱하는 디바이스가 원래의 디바이스보다 더 비싸고, 복잡하며, 소모전력이
더 많은 경우가 많기 때문입니다.
또한 캐시는 디바이스의 모든 기능을 대체하기에는 충분하지 않을 수 있습니다.
예를 들어, 디스크에는 쓰기와 읽기 기능뿐만 아니라 회전 속도 조절, 디스크 자체의 위치 지정 등의 기능이 있습니다.
따라서 캐시는 디바이스의 일부분을 대체할 수 있지만, 모든 기능을 대체하기에는 적합하지 않습니다.
1.10 Discuss, with examples, how the problem of maintaining coherence of cached data manifests itself in the following processing environments:
a. Single-processor systems
b. Multiprocessor systems
c. Distributed systems
캐시된 데이터의 일관성 유지 문제는 다음과 같은 처리 환경에서 어떻게 나타나는지 예를들어 설명하십시오.
a. 단일 프로세서 시스템
b. 다중 프로세서 시스템
c. 분산 시스템
Answer:
a. 단일 프로세서 시스템에서는 캐시 메모리에 저장된 데이터와
메인 메모리에 저장된 데이터 간의일관성 문제가 발생할 수 있습니다.
예를 들어, 캐시된 값이 수정된 후에 메인 메모리에 업데이트되지 않으면,
이후에 해당 값을 사용하는 프로그램에서 예기치 않은 결과가 발생할 수 있습니다.
b. 다중 프로세서 시스템에서는 여러 개의 프로세서가 메인 메모리에 접근하고,
데이터를 수정할 때 캐시 일관성 문제가 발생할 수 있습니다.
예를 들어, 한 프로세서가 데이터를 수정하면 다른 프로세서가 캐시에 저장된 값과
메인 메모리의 값이 서로 다르다는 것을 알지 못하고 계속 사용할 수 있습니다.
이로 인해 데이터 불일치 문제가 발생할 수 있습니다.
c. 분산 시스템에서는 여러 개의 노드가 동시에 데이터를 수정할 때, 캐시 일관성 문제가 발생할 수 있습니다.
예를 들어, 한 노드에서 수정된 데이터가 다른 노드의 캐시에 저장되어 있을 때,
다른 노드에서 해당 데이터를 사용하면 일관성 문제가 발생할 수 있습니다.
이러한 문제를 해결하기 위해 분산 시스템에서는 일관성 유지 프로토콜을 사용합니다.
1.11 Describe a mechanism for enforcing memory protection in order to prevent a program from modifying the memory associated with other programs.
다른 프로그램과 연관된 메모리를 수정하지 못하도록 메모리 보호를 시행하는 메커니즘을 설명하세요.
Answer:
메모리 보호(memory protection)는 프로그램이 다른 프로그램의 메모리를 수정하는 것을 방지하기 위한 중요한 보안 기술입니다.
이를 위해 운영체제는 하드웨어 기능을 사용하여 각 프로세스가 사용하는 메모리 영역을 지정하고,
이 영역을 다른 프로세스나 운영체제의 메모리와 구분합니다.
이러한 기능을 가진 하드웨어를 가상 메모리 관리장치(Virtual Memory Manager)라고 합니다.
가상 메모리 관리장치는 운영체제의 메모리 보호 기능을 구현합니다.
각 프로세스는 가상 주소 공간(Virtual Address Space)을 가지며,
이 가상 주소 공간에서는 실제 물리적 메모리 주소와 매핑됩니다.
운영체제는 이 매핑 정보를 관리하여 각 프로세스가 사용할 수 있는 메모리 영역을 지정하고,
이 영역을 다른 프로세스나 운영체제의 메모리와 구분합니다.
또한, 운영체제는 각 프로세스에게 권한(permission)을 부여합니다.
권한에는 읽기(read), 쓰기(write), 실행(execute) 등의 권한이 있으며,
이를 통해 각 프로세스가 메모리에 접근할 수 있는지 여부를 결정합니다.
따라서, 메모리 보호 기능을 위해서는 운영체제가 메모리 영역을 지정하고, 권한을 부여하는 것이 중요합니다.
예를 들어, 프로세스 A와 B가 있다고 가정해보겠습니다.
각 프로세스는 자신의 가상 주소 공간에서 실행되며, 서로 다른 메모리 영역을 사용합니다.
운영체제는 이 두 프로세스 간의 메모리 접근을 제어하기 위해, 각 프로세스에게 다른 메모리 영역을 지정하고,
해당 영역에 대한 권한을 제공합니다.
따라서, 프로세스 A는 자신의 메모리 영역에만 접근할 수 있고,
프로세스 B는 자신의 메모리 영역에만 접근할 수 있습니다.
이를 통해, 각 프로세스는 서로의 메모리를 수정하는 등의 오작동을 방지할 수 있습니다.
1.12 Define the essential properties of the following types of operating systems:
a. Batch
b. Interactive
c. Time sharing
d. Real time
e. Network
f. Parallel
g. Distributed
h. Clustered
i. Handheld
Answer:
a. Batch [일괄처리]
컴퓨터 시스템의 자원을 최대한 활용하여 일괄적으로 대량의 작업을 처리하는 방식
사용자와의 상호작용이 없는 비대화형 운영 체제
입력 데이터를 일괄 처리 후 출력 데이터를 생성함
b. Interactive [대화형]
사용자와 컴퓨터 간의 실시간 상호작용이 가능한 운영 체제
사용자 입력에 대한 즉각적인 응답을 제공함
컴퓨터 자원을 공유하며 여러 사용자가 동시에 접근 가능함
c. Time sharing [시분할]
여러 사용자가 컴퓨터 자원을 동시에 공유하는 운영 체제
CPU 시간을 작은 단위로 분할하여 각 사용자에게 공평하게 할당함
다중 프로그래밍과 유사한 방식으로 동작함
d. Real time [실시간]
실시간 시스템에 사용되는 운영 체제
정해진 시간 안에 작업이 완료되어야 하는 실시간 시스템에 적합함
하드웨어와 밀접하게 연동되어 빠른 응답을 제공함
e. Network [네트워크]
여러 대의 컴퓨터와 장치를 연결하여 네트워크를 형성하는 운영 체제
데이터 전송, 파일 공유, 원격 제어 등의 기능을 제공함
분산 컴퓨팅 환경에서 사용됨
f. Parallel [병렬]
여러 대의 컴퓨터나 CPU를 병렬로 연결하여 작업을 처리하는 운영 체제
대규모 연산이나 과학, 엔지니어링 등의 분야에서 사용됨
각 CPU는 별도의 메모리와 입출력 장치를 가지고 있음
g. Distributed [분산]
여러 대의 컴퓨터나 서버를 연결하여 하나의 시스템처럼 동작하게 하는 운영 체제
지리적으로 떨어진 여러 위치에서 데이터와 자원을 공유하고 처리할 수 있음
안정성과 확장성이 높은 시스템을 구축할 수 있음
h. Clustered [클러스터]
여러 대의 컴퓨터를 연결하여 하나의 시스템처럼 동작하게 함
'CS > OS' 카테고리의 다른 글
[OS] 3. Process 연습문제 (0) | 2023.04.16 |
---|---|
[OS] 2. Operating System Structure 연습문제 (0) | 2023.04.15 |
[OS] CPU Scheduling (2) - CPU 스케줄링 (0) | 2023.04.14 |
[OS] CPU Scheduling (1) - CPU 스케줄링 (0) | 2023.04.14 |
[OS] - Thread (0) | 2023.04.12 |