- 1장 - 서론2024년 09월 22일
- 31514
- 작성자
- 2024.09.22.:30
운영체제를 공부하는 이유
거의 모든 코드가 운영체제 위에서 실행되므로 운영체제 작동방식에 대한 지식은 적절하고 효율적이며, 효과적이고 안전한 프로그래밍에 중요하기 때문이다.
운영체제가 할 일
- 운영체제는 단순히 다른 프로그램이 유용한 작업을 할 수 있는 환경을 제공한다.
- 운영체제는 컴퓨터 시스템을 효율적이고 공정하게 운영할 수 있도록 어느 요청에 자원을 할당할지를 결정해야 한다.
- 운영체제는 제어 프로그램이기 때문에 컴퓨터의 부적절한 사용을 방지하기 위해 사용자 프로그램의 수행을 제어한다.
컴퓨터 시스템의 구성
- 하드웨어는 어느 순간이든 시스템 버스를 통해 CPU에 신호를 보내 인터럽트를 발생시킬 수 있다.
- 인터럽트는 다른 많은 목적으로도 사용되며 운영체제와 하드웨어의 상호 작용 방식의 핵심 부분이다.
- 인터럽트는 최신 운영체제에서 비동기 이벤트를 처리하기 위해 사용된다.
- CPU는 메모리에서만 명령을 적재할 수 있으므로 실행하려면 프로그램을 먼저 메모리에 적재해야 한다.
- 인터럽트 구동 I/O의 형태는 소량의 데이터를 이동하는 데는 좋지만, 대량 데이터 이동에 사용될 때 높은 오버헤드를 유발할 수 있다.
- 따라서 대량의 데이터를 이동하기 위해 직접 메모리 액세스(DMA)가 사용된다.
컴퓨터 시스템의 구조
- 코어는 명령을 실행하고 로컬로 데이터를 저장하기 위한 레지스터를 포함하는 구성요소이다.
- 프로세스의 수를 늘린다고 해서 N 프로세스의 속도 향상 비율이 N은 아니다.
- 여러 프로세스가 하나의 작업에 협력할 때 모든 프로세서가 올바르게 작동하게 유지하는 데 일정한 양의 오버헤드가 발생하기 때문이다.
- 프로세서가 특정 자료구조를 공유하는 경우, 프로세스 및 메모리와 같은 자원을 다양한 프로세서 간에 동적으로 공유할 수 잇으며 프로세서 간의 작업 부하 분산을 낮출 수 있다.
- 모든 CPU가 공유 시스템으로 연결되어 하나의 물리 주소 공간을 공유하는 것을 NUMA라고 한다.
- NUMA는 CPU가 로컬 메모리에 접근할 때 빠르고 시스템 상호 연결에 대한 경합도 없다.
- 하지만 CPU가 시스템 상호 연결을 통해 원격 메모리에 접근해야 할 때 지연 시간이 증가하여 성능 저하가 발생할 수 있다.
- CPU 스케줄링 및 메모리 관리를 통해 NUMA의 단점을 최소할 수 있다.
- 클러스터 컴퓨터는 저장장치를 공유하고 근거리 통신망이나 고속의 상호 연결망으로 연결된다.
- 클러스터링은 통상 높은 가용성을 제공하기 위해 사용되고 이를 결함허용 시스템이라고 부를 수 있다.
- 비대칭형 클러스터링에서는 다른 컴퓨터들이 애플리케이션을 실행하는 동안 한 컴퓨터는 긴급 대기 모드 상태를 유지한다.
- 대칭형 클러스터링에서는 둘 이상의 호스트들이 애플리케이션을 실행하고 서로를 감시한다.
- 가용한 하드웨어를 모두 사용하는 대칭형 구성이 더 효율적이다.
- 병렬 클러스터는 여러 호스트가 공유 저장 장치의 동일한 데이터에 접근할 수 있게 한다.
운영체제의 작동
- 부트스트랩 프로그램이 운영체제 커널을 찾아 메모리에 적재한다.
- 커널이 적재되고 실행되면 시스템과 사용자에게 서비스를 제공할 수 있다.
- 트랩은 오류 또는 사용자 프로그램의 특정 요청 때문에 발생하는 소프트웨어 생성 인터럽트이다.
- 다중 태스킹 시스템에서 운영체제는 적절한 응답 시간을 보장해야 한다.
- 이를 위해 가상 메모리를 사용한다.
- 운영체제와 사용자는 컴퓨터 시스템의 하드웨어 및 소프트웨어 자원을 공유하기 때문에 올바르게 설계된 운영체제는 잘못된 프로그램으로 인해 다른 프로그램 또는 운영체제 자체가 잘못 실행될 수 없도록 보장해야 한다.
- 커널 모드로 전환하는 명령어가 특권 명령어의 예이다.
- 시스템 콜은 사용자 프로그램이 자신을 대신하여 운영체제가 수행하도록 지정되어 있는 작업을 운영체제 요청할 수 있는 방법을 제공한다.
자원 관리
- 컴퓨터의 전체 동작 속도는 보조저장장치와 그것을 조작하는 알고리즘의 속도에 의해 결정될 수 있다.
- 캐시 크기와 교체 정책을 신중하게 선택하면 성능이 크게 향상될 수 있다.
보안과 보호
- 보호란 컴퓨터 시스템이 정의한 자원에 대한 프로그램, 프로세스, 또는 사용자들의 접근을 제어하는 기법이다.
- 보호를 통해 시스템의 신뢰성을 증가시킬 수 있다.
- 컴퓨터 시스템은 충분한 보호 기능이 있더라도 여전히 고장이 나거나 부적절한 접근을 허용할 수 있다.
- 보안이란 외부 또는 내부의 공격을 방어하는 기능이다.
분산 시스템
- 분산 시스템의 많은 기능은 네트워킹에 의존하고 있다.
- 네트워크 운영체제는 다른 컴퓨터의 다른 프로세스가 메시지를 교환할 수 있도록 하는 통신 체계와 함께 네트워크를 통한 파일 공유와 같은 기능을 제공하는 운영체제이다.
커널 자료구조
- 리스트는 커널 알고리즘에 의해 직접 사용된다.
- 운영체제는 함수를 호출할 경우 종종 스택을 사용한다.
- 함수를 호출할 때 인수, 로컬 변수 및 복귀 주소 등이 스택에 푸쉬되고 함수로부터 복귀할 때 이들 항을 스택으로부터 팝한다.
- 큐도 운영체제에서 자주 사용된다.
- 비트맵은 n개의 항의 상태를 나타내는 데 사용 가능한 n개의 이진 비트의 스트링이다.
- 비트맵의 힘은 이들의 공강 효율을 생각하면 자명하다.
컴퓨팅의 종류
- 현대 네트워크 구조는 서버 시스템이 클라이언트 시스템이 생성한 요청을 만족시키는 배치를 특징으로 한다.
- 서버 시스템은 대체적으로 계산 서버와 파일 서버로 분류될 수 있다.
- 계산 서버는 클라이언트가 어떤 작업을 요청할 수 있는 인터페이스를 제공한다.
- 파일 서버는 클라이언트가 파일을 생성, 갱신, 읽기 및 제거할 수 있는 파일 시스템 인터페이스를 제공한다.
- P2P 시스템은 모든 노드가 피어로 간주되고 각 피어는 서비스를 요청하느냐 제공하느냐에 따라 클라이언트 및 서버로 구분된다.
- 피어 간 시스템에서는 서비스가 네트워크에 분산된 여러 노드에 의해 제공될 수 있다.
- 클라우드 컴퓨팅은 계산, 저장장치는 물론 애플리케이션조차도 네트워크를 통한 서비스로 제공하는 유형이다.
'Book > 운영체제' 카테고리의 다른 글
[공룡책] 3장 - 프로세스 (0) 2024.10.17 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)