▶클릭◀ 암보험,실비보험 가입시 주의사항

 

▶클릭◀ 병원 약국에서 지출한 병원비 약값 최대 80% 보장받기

 

 

분산 운영체제

분산 시스템이란 공유 메모리나 공유 클록을 가지고 있지 않은 처리기들의 집합을 말한다. 그 대신 각 지리기들은 자신의 지역 메모리를 가지고 있으며, 고속버스나 전화선과 같은 여러 형태의 통신선을 통해 치리기들끼리 통신을 행한다. 분산 시스템 내의 각처리기들은 초소형 처리기로부터 워크스테이션, 소형 컴퓨터, 그리고 대형 범용 김퓨터시스템에 이르기까지 그 크기나 기능이 다양하다.

시스템 내의 처리기들은 통신 네트워크를 통해 서로 연결되어 있으며, 연결 형태는여러 가지 방법으로 구성될 수 있다. 네트워크는 완전히, 또는 부분적으로 연결될 수 있으며, 그 형태로는 트리형, 성형, 링형, 또는 다중 접근 버스형 등이 있다. 통신 네트워크 설계 시에는 라우팅, 연결 전략, 그리고 경쟁 및 보안 등이 고려되어야 한다.분산 시스템은 사용자에게 시스템이 제공하는 자원에 대한 접근을 제공한다. 공유 자원에 대한 접근은 데이터 이주, 계산 이주 또는 프로세스 이주에 의해 제공될 수 있다.

네트워크 계층화 모델에 의해 정의되는 프로토콜 스택은 목적지에 정확하게 도달할 수있는 정보를 추가하는 등 메시지를 보완한다. DNS와 같은 지명 시스템은 호스트 이름을네트워크 주소로 바꾸는 데 사용되어지며, ARP와 같은 프로토콜은 네트워크 번호를 이더넷 주소와 같은 네트워크 장치 주소로 바꾸는 데 사용된다. 만일 시스템이 서로 분리되어있다면, 패킷을 출발지 네트워크에서 목적지 네트워크로 보내기 위해 라우터가 필요하다.분산 시스템은 여러 타입의 하드웨어 고장으로 피해를 입을 수 있다. 분산 시스템이결함 허용성을 가지려면 하드웨어 고장을 탐지하고 시스템을 재구성할 수 있어야 한다.고장이 고쳐지면 시스템은 다시 재구성되어야 한다.

 

분산 파일시스템

분산 파일 시스템(DPS)은 클라이언트들과 서버, 그리고 메모리가 분산 시스템의 이리사이트에 흩어져 있는 분산 환경을 위한 파일 서비스 시스템이다. 따라서 서비스는 네트워크를 통해서 실행되어야 하고, 하나의 데이터 저장소 대신에 여러 독립적인 지장장치들이 존재한다.

이상적으로, 분산 파일 시스템은 클라이언트들에게 전통적인 중앙 집중식 파일 시스템으로 보여야 한다. 분산 파일 시스템의 서버와 저장장치의 다중성과 분산화는 투명해야 한다. 즉, 분산 파일 시스템의 클라이언트 인터페이스는 로컬 파일과 원격 파일을 구별해서는 안 된다. 파일을 찾고 데이터 전송을 처리하는 일은 DFS에 좌우된다. 투명한DFS 설비는 사용자가 어디서 로그인하든지 똑같은 환경을 제공함으로써 클라이언트의이동성을 증진시킨다.

DFS의 지명 기법들을 위한 여러 방식이 있다. 가장 간단한 방법은 파일을 호스트 이름과 로컬 이름의 조합으로 이름 짓는 방법으로, 이 이름은 시스템 전체에서 유일한 이름으로 보장된다. NFS에서 많이 사용되는 다른 방식으로는 원격 디렉터리들을 로컬 디렉터리에 붙임으로써 일관된 디렉터리 트리처럼 보이게 하는 방법이 있다.

원격 파일에 대한 접근 요청은 보통 두 개의 상호보완적인 방법으로 처리된다. 원격서비스의 경우 파일 접근 요청은 서버에게 전달된다. 서버 기계는 그 요청을 처리하고,결과를 클라이언트에게 반환한다. 캐싱 방법의 경우 요청된 데이터가 캐시에 없다면, 그데이터의 복사본을 서버로부터 클라이언트의 캐시로 가져온다. 이후의 접근 요청은 캐시된 복사본을 대상으로 실행된다. 캐시에 가장 최근에 사용된 디스크 블록들을 유지함으로써 같은 정보에 대한 반복되는 접근 요청을 부가적인 네트워크 전송없이 지역적으로 처리할 수 있다. 캐시의 크기를 일정 수준 이하로 유지하기 위해 캐시 교체 정책이 사용된다.캐시된 복사본을 마스터 파일과 일치시키는 문제를 캐시 일관성 문제라고 한다.

서버측 정보에 대한 두 가지 접근 방식이 있다. 서버가 각 클라이언트들에 의해 접근되는 파일에 대한 정보를 유지하는 방법과 상태 정보없이 단순히 클라이언트가 요청한블록을 제공하는 방법이다. 이것들을 상태형(stateful) 서비스와 무상태형(stateless) 서비스라고 한다.

여러 기계에 파일을 중복시킴으로써 가용성을 증진시킬 수 있다. 이러한 중복은 또한성능도 상당히 높일 수 있는데, 그것은 가까운 복사본으로 접근 요청을 처리함으로써 서비스 시간을 줄일 수 있기 때문이다.

AFS는 기능이 풍부한 DFS이다. AFS는 소스가 공개되어 있으며 Transarc DFS의 전신이다. AFS는 위치 독립성과 위치 투명성을 제공한다. 또한 중요한 일관성 의미(semantics)를 시행한다. 캐싱과 중복을 사용하여 성능을 향상시킨다.

 

분산 동기화

 

분산 시스템은 메모리나 클록을 공유하지 않기 때문에 두 사건의 순서를 정확히 결정하기는 불가능하다. 분산 시스템에서 사건 전후 발생 관계는 사건의 부분적 순서만 규정한 것이다. 타임스탬프는 분산 시스템에서 사건 순서화를 제공한다.

분산 환경에서 상호 배제는 여러 가지 방법으로 구현될 수 있다. 집중형 접근방법인 경우 시스템에 있는 프로세스들 중 하나가 임계 영역에 대한 진입을 조경하기 위해 선정된다. 완전 분산형인 경우 의사 결정은 전체 시스템에 분산된다. 링 구조에 적합한 분산 알고리즘은 토큰 패싱 접근이다.

원자성을 보증하기 위해 트랜잭션 T를 실행한 모든 사이트는 실행의 최종 결과에 동의해야 한다. T는 모든 사이트에서 확약(commit)되거나 아니면 모든 사이트에서 취소된다. 이러한 속성을 보증하기 위하여 T의 트랜잭션 조정자는 확약 프로토콜을 실행한다. 가장 잘 알려진 확약 프로토콜은 2PC이다.

 

집중형 시스템에서 사용할 수 있는 여러 가지 동시성 제어 기법들은 분산 환경에서 사용할 수 있도록 변경될 수 있다. 락킹 프로토콜의 경우 락 관리자가 구현되는 방법만 변경하면 된다. 타임스탬프와 검증(validation) 기법의 경우 단지 필요한 변경은 유일한 전역 타임스탬프를 생성하기 위한 기법의 개발에 있다. 그러한 기법은 보다 큰 타임스템프를 가진 메시지가 도착할 때마다 사이트 식별자를 가진 로컬 타임스탬프를 덧붙이거나 혹은 로컬 클록들을 증가시킬 수 있다.

분산 환경에서 교착상태를 다루기 위한 주방법은 교착상태 탐지이다. 가장 큰 문제점은 어떻게 대기 그래프를 유지할 것인지를 결정하는 것이다. 대기 그래프를 구성하기 의한 여러 방법들은 집중형 접근 방법과 완전 분산형 접근방법으로 구분된다. 어떤 분산 알고리즘들은 조정자의 사용을 요구한다. 조정자가 위치하고 있는 해당 사이트의 고장으로 작동하지 못하면 시스템은 다른 사이트에 있는 조정자의 새로운 복사본을 재실행함으로써 계속 실행될 수 있다. 이는 백업 조정자가 있어서 조정자가 고장날 경우 책임을 물려받게 하면 된다. 또 다른 접근 방법은 조정자가 고장이면 새로운 조정자를 선정하는 것이다. 새로운 조정자의 복사본이 재 시작될 지를 결정하는 알고리즘을 선출 알고리즘이라 한다. 두 개의 알고리즘 bully 알고리즘과 링(ring) 알고리즘이 새로운 조정자를 선정하기 위해 사용될 수 있다.

본 광고는 광고심의기준을 준수하였으며, 유효기간은 심의일로부터 1년입니다.

▶클릭◀ 암보험,실비보험 가입시 주의사항

 

▶클릭◀ 병원 약국에서 지출한 병원비 약값 최대 80% 보장받기

 

컴퓨터 구조의 보호

 

컴퓨터 시스템은 많은 객체를 포함하고 있다. 이러한 객체들은 오용되는 것으로부터 보호되어야 한다. 객체는 하드웨어(메모리, CPU 시간, 또는 입출력장치) 또는 소프트웨어(파일, 프로그램, 세마포)일 수도 있다. 하나의 접근 권한은 어떤 객체에 대해 연산을 실행할 수 있다는 허락이다. 하나의 영역은 접근 권한의 집합이다. 프로세스는 영역 내에서 실행하고, 객체에 접근하고 객체를 조작하기 위해 그 영역 내의 접근 권한들 중 어느 것이라도 이용할 수 있다. 프로세스는 일생동안 한 보호 영역에 고정되어 있거나 아니면 한 영역에서 다른 영역으로 전환할 수 있다.

접근 행렬은 보호의 일반적인 모델이다. 접근 행렬은 시스템이나 그 사용자에게 특정 보호 정책을 강요함이 없이 보호를 위한 기법을 제공한다. 정책과 기법의 분리는 중요한 설계 특성이다.

접근 행렬은 희소(sparse)하다. 그것은 보통 각 객체에 연관된 접근 리스트 또는 각 영역에 연관된 자격 리스트로서 구현될 수 있다. 우리는 영역과 접근 행렬 자체를 객체로 간주함으로써 접근 행렬 모델에 동적 보호를 포함시킬 수 있다. 동적 보호 모델에서 접근 권한의 취소는 전형적으로 자격 리스트보다는 접근 리스트로 구현하는 것이 더 쉽다. 실제 시스템은 보다 제한적이며 파일에 대해서만 보호를 제공하려는 경향이 있다. UNIX가 그 대표적인 예로, 각 파일에 대하여 소유자, 그룹, 그리고 기타 사용자 각각에 대하여 읽기, 쓰기 및 실행 보호를 제공한다. MULTICS는 파일 접근과 추가적으로 링구조를 이용한다. Hydra, 캠브리지 CAP 시스템과 Mach는 사용자가 정의한 소프트웨어 객체에까지 보호를 확장시킨 자격 시스템이다. Solaris10은 최소 권한의 원칙을 역할 기반 접근제어에 기반을 둔 접근 행렬의 형태로 구현하였다.

언어 기반 보호는 운영체제 자체가 제공하는 것보다 요청과 특권의 더 좋은 조정안을 제공한다. 예를 들어, 하나의 자바 JVM은 각각 다른 보호 클래스의 여러 스레드를 실행시킬 수 있다. 이는 복잡한 스택 검사와 언어의 타입 안전성을 통해서 자원 요구를 강제적으로 시행한다.

 

컴퓨터 구조의 보안

 

보호는 내부적인 문제이다. 보안은 컴퓨터 시스템과 그 시스템이 사용되는 한사람. 건물, 업무, 귀중한 물건, 그리고 위협)을 반드시 고려해야 한다. 컴퓨터 시스템 내에 저장된 데이터는 인가되지 않은 접근, 악의적인 파괴나 변경, 또는 실수로 인한 비일관성으로부터 반드시 보호되어야 한다. 실수로 인해 데이터 일관성을 잃어버리는 것을 보호하는 것이 악의적 자료 접근에 대해 보호하는 것보다 쉽다. 김퓨터 시스템에 저장된 정보를 악의적인 오용으로부터 절대직으로 보호하는 것은 불가능하지만 적절한 인가없이 정보에 접근하리는 모든 시도를, 진부는 아니더라도 대부분을 단념시킬 수 있도록 침입자에 대한 비용이 충분히 커지게 할수있다.

 

개인 컴퓨터나 대용량 시스템을 공격하는 침입에는 여러 타입들이 있다. 바이러스웜은 자생이 가능하며 수천대의 컴퓨터를 감염시킬 수 있다. 스택과 버퍼 오버플로우는 성공적인 해커에게 그들의 시스템 접근 수준을 변경할 수 있게 한다. 서비스 거부 공격은 정당한 시스템 사용을 불가능하게 한다.

암호화는 데이터를 받는 사람들의 도메인을 제한하는 반면 인증은 보내는 사람의 도메인을 제한한다. 암호화는 저장되거나 전송되는 데이터의 기밀성을 제공하는데 사용된다. 대칭 암호화 기법은 공유키를 요구하는 반면 비대칭 암호화는 공개 키와 비밀키를 요구한다. 인증은 해싱과 연관되어 자료가 변하지 않았음을 증명할 수 있다.

사용자 이름과 패스워드 이외에도 여러 인증 메서드들이 있다. 일회용 패스워드는 리플레이 침입을 막기 위해 각 시간마다 데이터를 전송한다. 두 요소(two factor) 인증 방법은 활동 PIN을 가진 하드웨어 계산기 같은 두 가지의 인증 방법을 요구한다. 생체공학 디바이스와 함께 이들 메서드들은 인증 위조의 가능성을 대폭 감소시킨다.

보안 문제에 있어서 예방 또는 탐지의 여러 메서드가 존재한다. 보통 이런 것들은 침입 탐지 시스템, 바이러스 대항 소프트웨어, 시스템 이벤트에 대해 감시와 로깅, 시스림 소프트웨어 모니터링, 시스템 호출 모니터링, 방화벽을 포함한다.

본 광고는 광고심의기준을 준수하였으며, 유효기간은 심의일로부터 1년입니다.

▶클릭◀ 암보험,실비보험 가입시 주의사항

 

▶클릭◀ 병원 약국에서 지출한 병원비 약값 최대 80% 보장받기

 

 

입출력에 관련된 가장 기본적인 하드웨어 장치들은 버스, 장치 제어기와 장치들 자신이다. 장치들과 메모리 사이의 자료 이동은 프로그램된 입출력으로서 CPU에 의해 직접 이루어지거나 DMA 제어기에 의해 이루어진다. 이때 장치를 제어하는 커널 모듈이 바로 장치 제어기이다. 응용 프로그램의 장치 접근을 위한 시스템 호출들은 블록장치, 문자장치, 메모리 맵 파일, 네트워크 소켓이나 프로그램된 시간 간격 타이머(programmed intervaltimer)들과 같은 여러 가지 종류의 장치 부류들을 제공할 수 있도록 설계되어 있다. 시스템 호출은 통상적으로 자신을 호출한 프로세스를 봉쇄시키지만, 그렇게 하지 말아야 할 경우가 있기 때문에 시스템은 비봉쇄형과 비동기 호출을 제공한다. 이들은 커널 자신에 의해 불려지기도 하며, 입출력 동작의 완료를 기다릴 동안 수면(sleep) 상태로 들어가지 말아야 할 응용 프로그램들에 의해서도 사용된다.

커널의 입출력 서브시스템은 많은 서비스를 제공한다. 입출력 스케줄, 버퍼링, 스풀링, 에러 처리, 장치 예약 등이 그것이다. 이외의 서비스로는 하드웨어 장치와 응용 프로그램에 사용되는 심벌릭 파일 이름과 연결해주는 이름 변환(name translation)이 있다. 이것은 문자열 이름을 특정 장치 구동기나 장치 주소로 바꾼 다음 입출력 포트나 버스 제어기의 물리 주소로 전환하는 여러 단계의 맵핑을 포함한다. 이러한 맵핑은 UNIX 시스템 같은 파일 시스템 이름 공간과 MS--DOS 같은 독자적인 장치 이름 공간 간에 일어날 수 있다.

 

STREAMS는 장치 드라이버와 네트워크 프로토콜을 작성하는데 모듈화되고 점진적인 접근 방식을 취할 수 있는 프레임워크를 제공하는 구현이자 방법론이다. STREAMS를 통해 드라이버를 층으로 쌓을 수 있으며 데이터는 이 층을 순차적으로 양방향 전송된다.

물리 장치와 응용 프로그램간의 많은 소프트웨어 계층으로 인해 입출력 시스템 호출은 CPU의 사용면에서 비용이 많이 든다. 이러한 계층이 야기하는 오버헤드의 원인에는 커널의 보호 경계(protection boundary)를 넘을 때의 문맥 교환과 입출력장치를 조작하기 위한 인터럽트와 신호, 커널 버퍼와 응용 프로그램 공간 간의 자료 복사에 따른 CPU와 메모리 시스템의 부하 등이 있다.

본 광고는 광고심의기준을 준수하였으며, 유효기간은 심의일로부터 1년입니다.

▶클릭◀ 암보험,실비보험 가입시 주의사항

 

▶클릭◀ 병원 약국에서 지출한 병원비 약값 최대 80% 보장받기

 

 

디스크 드라이브는 대부분의 컴퓨터에서 주요한 2시 지상 입출력장기이다. 대부분의 2차 저장장치는 자기디스크나 자기테이프이다. 현대 디스1 드라이브'들은 대게 512 바가트의 논리 블록들로 된 큰 일차원직인 메일로 구조하된다. 디 그는 김퓨터 시스템에 2가지 방법으로 부착될 수 있다. 첫 번째는 호스트 김퓨터의 로길 1/() 포트에 부가되는 것이고, 두 번째는 SAN과 같은 네트워크 연결을 사용하는 것이다.

디스크의 입출력 요청은 파일 시스템이나 가상 메모리 시스템에 의해 발생된다. 각 요청은 참조할 디스크의 주소를 가지며, 이 주소는 논리 블록 번호의 형태이다. 디스크의 스케줄링 알고리즘은 실질적인 대역폭, 평균 응답 시간 그리고 응답 시간의 편가를 개선한다. SSTF, SCAN, C-SCAN, LOOK 및 C-LOOK 등과 같은 알고리즘은 디스크큐의 순서를 변경함으로써 이러한 개선을 시도한다.

외부 단편화에 의해 성능이 떨어질 수 있다. 일부 시스템은 파일 시스템을 스캔하여 단편화된 파일을 찾고 블록들을 이동하여 단편을 감소시키는 유틸리티를 가지고 있다. 심하게 단편화된 파일의 단편을 제거함으로써 성능의 증가는 커지지만 제거 작업을 실행하는 동안 시스템의 성능이 제한될 수 있다. UNIX의 Fast File Systerm과 같은 복잡한 파일 시스템은 공간을 할당할 때 단편을 제어하기 위해 여러 전략을 사용하여 이러한 디스크 재구성을 필요 없게 한다.

운영체제는 또한 디스크 블록을 관리해야 한다. 첫째, 디스크는 섹터를 생성시키기 위해 저수준 포맷이 되어야 하며, 새 디스크는 통상 미리 포맷되어 출시된다. 이어 디스크가 파티션되고, 파일 시스템이 생성되고, 그리고 부트 블록이 시스템의 부트 스크랩 코드(boot-strap code)를 저장하기 위해 할당된다. 마지막으로 블록이 훼손되었을 때 시스템은 논리적으로 그 블록을 다른 좋은 블록과 교체시키는 방법을 가지고 있어야 한다.

효율적인 스왑 공간의 사용이 성능에 중요한 영향을 미치기 때문에 시스템은 페이징 입출력을 위해 파일 시스템 구조를 사용하지 않고 raw 디스크 접근을 사용한다. 일부 시스템은 스왑 공간으로 전용 raw 디스크 파티션을 사용하고, 일부 시스템은 대신 파일 시스템 내의 한 파일을 사용한다. 또 다른 시스템에서는 두 가지 옵션들을 모두 제공함으로써 사용자나 시스템 관리자가 선택할 수 있도록 한다.

규모가 큰 시스템에 요구되는 저장장치의 대형화 때문에 디스크는 빈번하게 RAID 알고리즘을 써서 중복을 시킨다. 이러한 알고리즘들은 주어진 연산에 하나 이상의 디스크가 사용되고, 지속적인 가동과 심지어 디스크 고장 시 자동 복구를 허용한다. RAID 알고리즘은 각 레벨이 신뢰성과 높은 전송 비율을 제공하는 여러 레벨로 구성될 수 있다.

로그-우선 쓰기(write-ahead log) 방법은 안정된 저장 장소를 필요로 한다. 그러한 저장장치를 구현하기 위해서 독립된 고장 모드들을 가진 하나 이상의 비휘발성 저장장치(보통 디스크)에 필요한 정보를 중복하여 저장한다. 또한, 자료 전송 중이나 회복 도중의 임의의 고장 후에 안전하게 자료를 회복할 수 있도록 통제된 방법으로 경보를 갱신할 필요도 있다.

디스크와 테이프 드라이브를 이용한 3차 저장장치가 이동식 장치를 사용하는 것을 보았다. 자기테이프, 이동식 자기디스크, 자기 광디스크, 그리고 광디스크 등 많은 기술들이 사용 가능하다.

이동식 디스크의 경우, 운영체제는 일반적으로 공간 관리와 요청 큐 스케줄링을 포함하여 모든 파일 시스템 인터페이스를 지원한다. 많은 운영체제의 경우 이동식 카트리지의 파일명은 드라이브 이름과 드라이브 내의 파일 이름의 조합이다. 이러한 기법은 간근하긴 하지만 특정 카트리지를 가리키는 이름을 사용하는 것보다 더 혼란스럽다.

테이프의 경우, 운영체제는 일반적으로 거의 가공하지 않은(raw)고 많은 운영체제들은 주크박스에 대한 지원을 내장하지 않는다. 주크박스 지원은 장치 구동기나 HSM 혹은 백업을 위하여 고안된 특권 응용 프로그램에 의해서 제공될 수 있다.

성능의 중요한 3가지 측면은 대역폭, 지연시간 그리고 신뢰성이다. 디스크와 테이프 둘 다 대역폭에서 넓은 다양성을 갖지만, 테이프의 임의 접근 대기 시간은 디스크보다. 훨씬 느리다. 주크박스 내의 카트리지 교환 또한 비교적 느리다. 주크박스는 카트리지에 비해 드라이브의 수가 작기 때문에 주크박스에서 큰 데이터를 읽는 일은 긴 시간이 필요하다. 투명한 코팅으로 민감한 층을 보호하는 광 미디어는 일반적으로 자성 물질이 물리적 손상에 노출되어 있는 자기 미디어에 비해 강건하다. 마지막으로 저장장치의 가격, 특히 디스크 저장장치의 가격은 지난 20년 동안 크게 하락하였다.

'컴퓨터 구조' 카테고리의 다른 글

컴퓨터 구조의 보호 및 보안  (0) 2022.05.03
입출력 시스템에 대해서..  (0) 2022.04.17
파일 시스템 구현에 대해서..  (0) 2022.04.17
파일 시스템에 관해서..  (0) 2022.04.17
가상메모리에 대해서  (0) 2022.04.17
본 광고는 광고심의기준을 준수하였으며, 유효기간은 심의일로부터 1년입니다.

▶클릭◀ 암보험,실비보험 가입시 주의사항

 

▶클릭◀ 병원 약국에서 지출한 병원비 약값 최대 80% 보장받기

 

 

파일 시스템은 많은 양의 데이터를 영구히 유지해야 하기 때문에 보조 저장장치에 영구히 상주한다. 가장 일반적인 보조 저장매체는 디스크이다.

물리 디스크는 미디어 사용을 제어하고 한 디스크에서 다앙한 파일 시스템을 지원하기 위해 파티션으로 나눌 수 있다. 이들 파일 시스템을 사용하려면 논리 파일 시스템 구조로, 마운트해야 한다. 파일 시스템은 보통 계층적으로 또는 모듈 구조로 구현된다. 하부 계층은 저장장치의 물리적인 면을 처리한다. 상위 계층은 기호형 파일 이름과 파일의 논리적인 면을 처리한다. 중간 계층은 논리적인 파일 개념을 물리 장치 특성으로 맵핑한다. 가질 수 있다. VFS

모든 파일 시스템 타입은 다른 구조와 다른 알고리즘을 계층은 상위 계층이 각 파일 시스템 타입을 동일하게 접근하는 것을 허용한다. 원격 파일 시스템, 이라도 시스템 디렉터리 구조로 통합될 수 있고, VFS 인터페이스를 통하여 표준 시스템 호출에 의해 작업할 수 있다.

파일들은 디스크의 자유 공간에 세 가지 방법, 즉 연속, 연결, 색인 할당 방법으로 할당될 수 있다. 연속 할당은 외부 단편화의 문제가 있다. 연결 할당은 직접 접근이 매우 비효율적이다. 색인 할당은 색인 블록 때문에 상당한 오버헤드가 있다. 이들 알고리즘을 최적화시키기 위한 많은 방법이 있다. 연속 공간은 외부 단편 문제를 감소시키고, 융통성을 증가시키기 위해 익스텐트(extent)를 이용하여 확장될 수 있다. 색인 할당은 필요한 색인 항목의 수를 감소시키고 처리율을 높이기 위해 이리 블록의 클러스터링을 가할 수 있다. 큰 클러스터를 사용하는 시스템에서의 인덱싱은 익스텐트 연속 할당 방법과 유사하다.

가용 공간 할당 방법들은 디스크 공간 사용의 효율성, 파일 시스템의 성능, 그리고 보조 저장장치의 신뢰성에 영향을 준다. 비트 벡터와 연결 리스트 방법 등이 사용된다. 최적화는 하나의 연속적인 영역에 연결 리스트를 배치하는 FAT와 그룹핑, 카운팅 등을 포함한다.

디렉터리 관리 루틴은 효율성, 성능 그리고 신뢰성을 고려해야 한다. 해시 테이블은 가장 많이 사용되는 방법이며 빠르고 효율적이다. 불행하게도, 시스템 크래시나 테이블의 손상이 디스크의 내용과 일치하지 않는 디렉터리 정보를 야기시킬 수 있다. 일관성체커(consistency checker)를 사용하여 이러한 손상을 복구할 수 있다. 운영체제 백업도구는 하드웨어 오류, 시스템 버그, 사용자 에러로 인한 데이터 또는 디스크 오루를 복구하기 위해 디스크 데이터를 테이프에 복사한다.

NFS같은 네트워크 파일 시스템은 사용자가 원격 시스템의 파일과 디렉터리를 로컬 파일 시스템에 존재하는 것처럼 접근하는 것을 허용하기 위해 클라이언트-서버 방법론을 사용한다. 클라이언트의 시스템 호출은 네트워크 프로토콜로 변환되고, 이어 서버의 파일 시스템 연산으로 재번역된다. 네트워킹과 여러 클라이언트의 접근은 데이터 일관과 성능에 해결해야 할 문제를 야기한다.

시스템 동작에서 파일 시스템이 기본적인 역할을 실행하기 때문에 파일 시스템의 능과 신뢰성은 중요하다. 로그 구조와 캐싱 기술이 성능을 향상시키는 반면, 로그 구조와 RAID는 신뢰성을 향상시킨다. WAFL 파일 시스템은 특징 입출력 부하에 대응하기 위하여 성능을 최적화하는 하나의 사례이다.

'컴퓨터 구조' 카테고리의 다른 글

입출력 시스템에 대해서..  (0) 2022.04.17
2차 저장장치 구조에 대해서..  (0) 2022.04.17
파일 시스템에 관해서..  (0) 2022.04.17
가상메모리에 대해서  (0) 2022.04.17
메모리 관리 전략은 이렇게..  (0) 2022.04.17
본 광고는 광고심의기준을 준수하였으며, 유효기간은 심의일로부터 1년입니다.

▶클릭◀ 암보험,실비보험 가입시 주의사항

 

▶클릭◀ 병원 약국에서 지출한 병원비 약값 최대 80% 보장받기

 

 

파일은 운영체제에 의하여 정의되고 구현되는 추상적인 자료형이다. 파일은 논리 레코드의 연속으로서, 바이트, 행(길이가 고정 또는 가변) 또는 좀 더 복합적인 자료 항목들이다. 운영체제는 구체적으로 다양한 레코드형을 사용자에게 제공하기나 아니면 응용 프로그램의 몫으로 남긴다.

운영체제의 가장 중요한 임무는 논리적인 파일 개념을 자기테이프나 디스크 같은 물리 저장장치로 맵핑시키는 것이다. 물리 레코드의 크기는 논리 레코드 크기와 일치하기 않기 때문에 논리 레코드를 물리 레코드에 정리 배치시켜야 한다. 이 작업 역시 운영게제에 의하여 지원되거나 응용 프로그램에 의해 지원될 수 있다.

파일 시스템의 각 장치들은 볼륨 목차 또는 장치 상 파일의 위치를 열거하는 장치 디렉터리를 가진다. 그리고 파일을 조직적으로 정리할 수 있도록 디렉터리를 만드는 것이 유용하다. 다중 사용자 시스템에서 1단계 디렉터리는 모든 파일이 고유 이름을 가져야 하기 때문에 파일 명칭 부여 문제가 유발된다. 2단계 디렉터리는 사용자마다 독자적인 디렉터리를 할당함으로써 이 문제를 해결한다. 디렉터리는 이름을 기준으로 파일을 열거하고, 파일의 디스크 상 위치, 길이, 타입, 소유자, 생성 시간, 마지막 사용 시간 등과 같은 정보를 포함한다.

2단계 디렉터리를 자연스럽게 일반화시키면 트리 구조 디렉터리가 된다. 트리 구조 디렉터리는 사용자가 파일을 구성하기 위하여 하위디렉터리를 생성하는 것을 허용한다. 비순환 그래프 디렉터리 구조는 서브디렉터리와 파일의 공유를 가능하게 하는 반면에 탐색과 삭제를 복잡하게 만든다. 일반적인 그래프 구조는 디렉터리와 파일의 공유에 완전한 융통성을 주는 대신 사용되지 않는 디스크 공간을 회수하기 위해 쓰레기 수집(garbagecollection)이 필요하다.

디스크는 하나 이상의 볼륨으로 나뉘어지며 각 볼륨은 미가공 상태이거나 하나의 파일 시스템을 포함한다. 파일 시스템은 시스템의 지명 구조에 마운트되어야 이용 가능하다. 지명 구조는 은영체제마다 다르다. 일단 마운트되면 볼륨 내의 파일들이 사용 가능해진다. 파일 시스템은 접근을 금지시키거나 유지보수를 위해 언마운트될 수 있다.

파일 공유는 시스템이 제공하는 시맨틱에 의해 좌우된다. 파일은 다수의 읽는 자의 쓰는 자를 갖거나 또는 공유에 제한을 두기도 한다. 분산 파일 시스템은 서로가 네트워크를 통해 접근할 경우, 클라이언트 호스트가 서버로부터 볼륨이나 디렉터리를 마운트하도록 허용한다. 원격 파일 시스템은 신뢰성, 성능, 그리고 보안과 관련된 해결해야 하는 문제를 제시한다. 분산 정보 시스템은 클라이언트와 서버가 사용과 접근을 관리하기 위해 상태 정보를 공유할 수 있도록 사용자, 호스트 및 접근 정보를 유지한다. 과일은 대부분의 컴퓨터 시스템에서 주요 정보 저장 수단이므로 보호되어야 한다.

파일에 대한 접근은 읽기, 쓰기, 실행, 덧붙이기, 삭제, 디렉터리 열거 등의 접근 타입별로 통제되어야 한다. 파일 보호는 암호, 접근 리스트 또는 기법으로 제공될 수 있다.

'컴퓨터 구조' 카테고리의 다른 글

2차 저장장치 구조에 대해서..  (0) 2022.04.17
파일 시스템 구현에 대해서..  (0) 2022.04.17
가상메모리에 대해서  (0) 2022.04.17
메모리 관리 전략은 이렇게..  (0) 2022.04.17
교착상태에 대해서..  (0) 2022.04.17
본 광고는 광고심의기준을 준수하였으며, 유효기간은 심의일로부터 1년입니다.

▶클릭◀ 암보험,실비보험 가입시 주의사항

 

▶클릭◀ 병원 약국에서 지출한 병원비 약값 최대 80% 보장받기

 

 

실제 주소 공간보다 더 큰 논리 주소 공간을 필요로 실행할 수 있다.는 것은 바람직한 일이라고 볼 수 있다. 가상 메모리는 매우 큰 논리 주소 공간을 은 물리 메모리로 사상하는 기법이다. 가상 메모리는 매우 큰 프로세스를 실행시킬 수 있기하고, 다중 프로그래밍의 정도를 증가시켜 CPU의 이용률을 향상시킨다. 특히 응용 프로그래머로 하여금 메모리 크기에 신경을 쓰지 않도록 해준다. 또한, 가상 메모리를 이해 여러 프로세스가 시스템 라이브러리와 메모리를 공유할 수 있다. 가상 메모리는 또하쓰기-시-복사로 불리는 효율적인 프로세스 생성 방법도 제공하여 부모와 자식 프로세스들 간에 실제 메모리를 공유할 수 있도록 해 준다.

가상 메모리는 보통 요구 페이징으로 구현된다. 순수 요구 페이징은 실제로 페이지를 참조할 때까지 어떤 페이지도 미리 불러들이지 않는다. 그러다가 메모리에 올라와 있지 않은 페이지에 대해 참조를 하면, 그 때 페이지 부재(page fault)를 일으킨다. 운영체제는 내부의 테이블을 참조하여 그 페이지가 백킹 저장장치 내 어디에 있는지를 알아낸다. 그리고 가용 프레임을 찾아내서 그 페이지를 백킹 저장장치로부터 읽어 들인다. 페이지 테이블은 이 수정사항을 기록하고 페이지 부재를 일으킨 명령은 다시 실행된다. 이런 방식으로 전체 프로세스가 주 메모리에 올라와 있더라도 프로세스를 실행할 수 있게 해준다. 페이지 부재율이 충분히 낮기만 하면 가상 메모리 시스템의 성능은 만족할 만한 수준이다.

요구 페이징을 통해 프로세스에 할당되는 프레임 수를 줄일 수 있다. 이는 다중 프로그래밍의 정도를 높이고(동시에 실행되는 프로세스의 수를 더 증가시키고) - 이론적으로는-CPU 이용률을 높일 수 있다. 또한, 메모리 요구량이 실제 물리 메모리보다 큰 프로세스들도 실행할 수 있도록 해 준다. 이러한 프로세스들은 가상 메모리상에서 실행된다.

 

메모리 총 요구량이 물리 메모리의 용량을 초과한다면, 새로운 페이지를 읽어오기 위해 기존의 페이지를 교체시킬 필요가 있다. 여러 가지 교체 알고리즘이 사용된다. FIF)알고리즘은 구현하기는 쉽지만 Belady의 모순 현상 때문에 문제가 있다. 최적 페이기교체 알고리즘은 미래의 정보를 필요로 한다. LRU는 최적 교체 알고리즘을 근사하지만 이 역시 구현하기가 쉽지 않을 수 있다. 2차 기회 알고리즘과 같은 대부분의 페이지 교체 정책은 LRU 정책의 근사 알고리즘을 사용한다.

페이지 교체 알고리즘과 함께 프레임 할당 정책이 중요하다. 할당은 지역 교계 정책을 사용하여 고정되어 있을 수도 있고 전역 교체 정책을 사용하여 동적일 수 있다. 각업 집합 모델은 프로그램의 실행이 지역성을 띠고 있다고 가정한다. 작업 집합은 현재 실행중인 지역의 페이지들의 집합이다. 따라서 각 프로세스에는 작업 집합을 충분히 수용할 수 있는 만큼의 프레임이 할당되어야 한다. 만약 프로세스의 작업 집합을 수용할 수 있는 충분한 공간을 할당해 주지 않으면 쓰래싱(thrashing)이 발생한다. 쓰래싱을 피하기 위해 충분한 공간을 확보하는 데는 프로세스 스와핑과 스케줄링이 필요하다.

대부분의 운영체제는 메모리 사상 파일 기능을 제공하여 파일 I/O가 일반적인 메모리 접근으로 처리될 수 있도록 한다. Win32 API는 공유 메모리를 메모리 사상 파일로 구현하고 있다.

커널 프로세스들은 보통 물리적으로 연속된 페이지들을 할당받는 것이 필요하다. 버디 시스템은 2의 거듭제곱 크기를 갖는 단위의 메모리를 할당하고, 이에 따라 단편화 문제가 발생할 수 있다. 슬랩 할당기는 각 커널 자료의 구조를 하나 또는 그 이상의 물리적으로 연속된 페이지인 슬랩 상의 캐시에 할당한다. 슬랩 할당을 통해 단편화에 의한 메모리 낭비를 막고 메모리 요구를 빠르게 처리해 줄 수 있다.

페이지 교체 정책, 프레임 할당 정책과 같은 주요한 문제 이외에도 페이징 시스템 설계에 있어 고려해야 할 것들로는 페이지 크기, 입출력, 잠금, 프리페이징, 프로세스 생성, 프로그램 구조 등이 있다.

'컴퓨터 구조' 카테고리의 다른 글

파일 시스템 구현에 대해서..  (0) 2022.04.17
파일 시스템에 관해서..  (0) 2022.04.17
메모리 관리 전략은 이렇게..  (0) 2022.04.17
교착상태에 대해서..  (0) 2022.04.17
프로세스 동기화에 대해서  (0) 2022.04.16
본 광고는 광고심의기준을 준수하였으며, 유효기간은 심의일로부터 1년입니다.

▶클릭◀ 암보험,실비보험 가입시 주의사항

 

▶클릭◀ 병원 약국에서 지출한 병원비 약값 최대 80% 보장받기

 

 

다중 프로그램된 운영체제의 메모리 관리 알고리즘은 아주 간단한 방식에서부터 페이지화된 세그먼테이션까지 다양한 기법들이 있다. 이중 어느 것을 사용할 것인가를 결정짓는 가장 큰 요소는 하드웨어에 있다. CPU가 생성하는 모든 주소에 대해 먼지 오류가 검사되어야 하고 물리 주소로 맵핑되어야 한다. 이러한 작업은 소프트웨어로는 효율적으로 실행될 수 없으므로, 하드웨어가 이 기능을 제공해 주어야 한다.

여기서 논의된 메모리 관리 알고리즘들(연속적인 할당, 페이징, 세그먼테이션, 페이징과 세그먼테이션의 조합)은 많은 측면에서 서로 다르다. 다음은 메모리 관리 정책들을 비교하는 데 중요한 관점들이다.

 

하드웨어 지원: 단일 또는 다중 분할 기법에 대해서는 단순한 기준 레지스터나 한계 레지스터의 쌍만으로도 충분한 반면, 페이징과 세그먼테이션은 주소 변환을 정의하는 맵핑 테이블(mapping table)이 필요하다.

성능 : 구조가 복잡해질수록 논리 주소를 물리 주소로 변환시키는 데 소요되는 시간이 늘어난다. 페이징과 세그먼테이션도 맵핑 테이블이 고속 레지스터에 의해 구현된다면 더 빨라질 수 있다. 그러나 만약 테이블이 주 메모리에서 가동되어야 한다.

 

반면, 프로그램의 메모리 액세스 속도는 상당히 느려질 수 있다. TLB 장치가 성능저하를 허용할 수 있는 수준까지 감소시킬 수 있다.

• 단편화: 다중 프로그램된 시스템은 일반적으로 다중 프로그래밍의 정도가 높아 좋은 성능을 보인다. 프로세스들의 집합에 대해 다중 프로그래밍 정도를 높이는 방법은 메모리에 더 많은 프로세스를 적재하는 방법 밖에 없다. 그러기 위해서는 기모리의 낭비나 단편화를 줄여야 한다. 단일 분할 기법 및 페이징과 같이 고정된 크기의 할당 단위를 가진 시스템은 내부 단편화의 문제를 가지고 있고, 다중 분할 기법 및 세그먼테이션과 같이 가변적 할당 단위를 가진 시스템은 외부 단편화의 문게를 가지고 있다.

• 재배치(relocation) : 외부 단편화 문제에 대한 해결책의 하나는 압축(cornpactior.)이다. 압축이란 프로그램이 눈치 채지 못하는 동안 그것들의 위치를 한쪽 끝으로 옮기는 것을 말한다. 그러기 위해서는 프로그램의 논리 주소가 실행 시에 동적으로 재배치될 수 있어야 한다. 주소가 적재 시간(load time)에 재배치되고 결정되어 러린다면 메모리를 압축할 수가 없게 된다.

• 스와핑(swapping) : 스와핑은 어느 알고리즘에도 추가될 수 있다. 운영체재가 정한 주기마다 스케줄링 정책에 따라 프로세스를 주 메모리에서 보조 메모리로, 다시 나증에 보조 메모리에서 주 메모리로 이동시킨다. 이런 기법을 사용하여 메모리에 동시에 적재될 수 있는 프로세스보다 더 많은 프로세스를 실행시킬 수 있다.

• 공유(sharing) : 다중 프로그래밍 정도(multiprogramming degree)를 증가시킬 수 있는 또 다른 방법은 코드와 데이터를 서로 다른 사용자 사이에 공유시키는 것이다. 공유는 공유될 수 있는 데이터의 크기가 작아도 되도록 페이징이나 세그먼테이션을 사용한다. 공유는 제한된 메모리에서 많은 프로세스를 실행시키는 방법이지만, 공유되는 프로그램이나 데이터는 신중하게 설계되어야만 한다.

보호(protection) : 페이지나 세그먼트는 각 부분들이 실행 전용(execute-only), 읽기 전용(read-only), 읽기/쓰기(read/write) 등으로 선언될 수 있다. 이런 제한은 코드나 데이터를 공유하는 경우 또는 일반적인 프로그래밍 오류를 실행시간에 점검할 수 있는 기능이 필요한 경우에 유용하다.

'컴퓨터 구조' 카테고리의 다른 글

파일 시스템에 관해서..  (0) 2022.04.17
가상메모리에 대해서  (0) 2022.04.17
교착상태에 대해서..  (0) 2022.04.17
프로세스 동기화에 대해서  (0) 2022.04.16
cpu 스케줄링  (0) 2022.04.16
본 광고는 광고심의기준을 준수하였으며, 유효기간은 심의일로부터 1년입니다.

▶클릭◀ 암보험,실비보험 가입시 주의사항

 

▶클릭◀ 병원 약국에서 지출한 병원비 약값 최대 80% 보장받기

 

 

대기 중인 프로세스 중 한 프로세스에 의해서만 발생할 수 있는 사건을 두 개 이상의 프로세스들이 무한정 대기할 때 교착상태가 발생한다. 근본적으로, 교착상태를 처리하는데는 세 가지 방식이 있다.

 

  • 시스템이 결코 교착상태가 되지 않도록 보장하기 위하여 교착상태를 예방하거나 회피하는 프로토콜을 사용한다.
  • 시스템이 교착상태가 되도록 허용한 다음에 회복시키는 방법이 있다.
  • 문제를 무시하고, 교착상태가 시스템에서 결코 발생하지 않는 척 한다.

 

세 번째 해결안이 UNIX와 Windows를 포함해 대부분의 운영체제가 사용하는 방법이다. 교착상태는 네 가지 필요조건들이 동시에 시스템 내에서 충족될 때, 그 때에만 발생한다.

 

이 조건들은 상호 배제, 점유 및 대기, 비 선점, 순환 대기이다. 교착상태를 예방하려면, 우리는 필요한 조건들 중에서 최소한 하나가 성립되지 않도록 조치해야 한다.

교착상태를 예방하는 것이 아니라 회피하는 방법은 운영체제가 각 프로세스가 자원을 활용하는 방법에 대해 사전 정보를 갖는 것이다. 예를 들어, 은행원 알고리즘은 각 프로세스마다 각 종류의 자원을 최대 몇 개까지 요청하는 지를 사전에 알아야 한다. 우리는 이러한 정보를 이용해 교착상태 회피 알고리즘을 정의할 수 있다.

만일 시스템이 교착상태가 결코 발생하지 않는 프로토콜을 채택하지 않으면, 탐지와 회복 방법을 반드시 적용해야 한다. 교착상태가 발생하였는지 결정하려면 교착상태 탐지 알고리즘을 반드시 호출해야 한다. 교착상태가 탐지되면, 시스템은 반드시 교착상태인 프로세스들 중 몇몇을 중지시키거나, 교착상태인 프로세스들로부터 자원을 선점해 회복해야 한다.

자원 선점을 이용해 교착상태를 제거하려면 희생자 선택, 롤백, 그리고 기아 현상의 세 가지 사항을 고려해야 한다. 비용 요인을 가장 중요시하여 롤백시킬 희생자를 선택하는 시스템에서는 기아 상태가 발생할 수 있다. 그 결과, 선택된 프로세스들은 자신의 태스크를 결코 종료하지 못한다.

연구자들은 이 기본적인 방법 중 어느 것도 단독으로는 운영체제에서의 자원 할당 문제 전 범위를 처리하는 데에는 적절하지 못하다고 주장한다. 그렇지만 시스템의 자원 클래스 각각에 최적인 해결책을 선택하는 데 이 기본적인 방법들을 조합하여 쓸 수 있다.

'컴퓨터 구조' 카테고리의 다른 글

가상메모리에 대해서  (0) 2022.04.17
메모리 관리 전략은 이렇게..  (0) 2022.04.17
프로세스 동기화에 대해서  (0) 2022.04.16
cpu 스케줄링  (0) 2022.04.16
다중 스레드 프로그래밍  (0) 2022.04.16
본 광고는 광고심의기준을 준수하였으며, 유효기간은 심의일로부터 1년입니다.

▶클릭◀ 암보험,실비보험 가입시 주의사항

 

▶클릭◀ 병원 약국에서 지출한 병원비 약값 최대 80% 보장받기

 

 

데이터를 공유하는 상호 협력적인 순차 프로세스들이 주어지면, 한 순간에 하나의 프로세스 또는 스레드만이 임계 영역을 사용하는 것을 보장하는 상호 배제가 제공되어야 한다. 통상 컴퓨터 하드웨어는 상호 배제를 보장하는 이러 연산을 제공한다. 그리나 이런 하드웨어를 기반으로 하는 해결 방안은 너무 복잡하여 대부분의 개발자는 사용할 수 없다. 세마포는 이러한 난점을 극복한다. 다양한 동기화 문제를 풀기 위해 세마포가 사용될 수 있으며, 특별히 하드웨어가 원자적(atomic) 연산을 지원하는 경우 효율적으로 구현될 수 있다.

다양한 동기화 문제들은(한정된 버퍼, readers-writers, 식사하는 철학자들 문제와 같은) 이들이 많은 부류의 병행 제어 문제의 예가 되기 때문에 중요하다. 이들 문제는 새로 제안되는 거의 모든 동기화 방안을 검증하는 데 사용된다.

운영체제는 시간과 관련해서 일어날 수 있는 오류에도 대비해야 한다. 여러 가지 언어 구조체(language construct)들이 이러한 문제를 해결하기 위해 제안되었다. 모니터(Monitor)는 추상 데이터형(abstract data type)을 공유하기 위한 동기화 기법을 제공한다. 조건 변수들은 모니터 프로시저(monitor procedure)들이 자신의 실행을 신호가 올 때까지 봉쇄시킬 수 있는 방법을 제공한다.

또 운영체제들은 동기화를 위한 지원도 제공한다. Solaris, Windows XP 및 Linux등은 공유 데이터의 접근을 제어하기 위하여 세마포, mutex, spinlocks 및 조건 변수와 같은 기법들을 제공한다. Pthreads API는 mutex와 조건 변수를 지원한다.

트랜잭션은 원자적으로 실행되어야 하는 프로그램 단위이다. 즉, 트랜잭션이 요구하는 연산들이 모두 성공적으로 완료되거나 아니면 그 어느 것도 실행되지 않아야 한다. 시스템이 고장나더라도 원자성을 보장해 주기 위해서는 로그 우선 쓰기(write-ahead log)를 사용할 수 있다. 모든 갱신은 로그에 기록되고 이것은 안전 저장장치에 저장된다. 시스템이 고장나면, 로그 안에 있는 정보가 갱신된 데이터 항목을 복구하는 데 사용된다. 이 복구 작업은 redo와 undo 연산을 이용하여 실행된다. 시스템 고장이 발생한 후 로그를 검색하는 오버헤드를 줄이기 위하여 검사점(checkpoint) 기법을 사용한다.

여러 개의 트랜잭션들이 서로 중첩되어 실행될 때 원자성을 보장하기 위하여 병행 제어 기법을 사용해야 한다. 다양한 병렬 제어 기법들은 연산을 요청한 트랜잭션을 연기시키거나 철회함으로써 직렬가능성을 보장한다. 가장 많이 쓰이는 방법은 락킹 프로토콜과 타임스탬프 순서 프로토콜이다.

'컴퓨터 구조' 카테고리의 다른 글

메모리 관리 전략은 이렇게..  (0) 2022.04.17
교착상태에 대해서..  (0) 2022.04.17
cpu 스케줄링  (0) 2022.04.16
다중 스레드 프로그래밍  (0) 2022.04.16
프로세스의 일련 과정  (0) 2022.04.16
본 광고는 광고심의기준을 준수하였으며, 유효기간은 심의일로부터 1년입니다.

+ Recent posts