Keywords
user-mode, kernel-mode, Program Counter
Caching, Protection, Security
Dual-mode and Multimode Operation
Dual-mode operation은 운영 체제와 다른 시스템 구성 요소를 보호할 수 있도록 함.
User-mode와 Kernel-mode로 구성되고 하드웨어에서 제공하는 Mode bit로 구현됨.
이러한 모드는 시스템이(CPU가) 사용자 코드 또는 커널 코드를 실행 중인지 구별할 수 있는 기능을 제공함.
특정 명령어들은 권한이 주어지고, 커널 모드에서만 실행 가능함.
System call은 모드를 커널 모드로 전환하고 호출이 완료되면 다시 사용자 모드로 되돌아감.
즉, 프로세스가 시스템콜을 커널에 요청하면 런타임 스택 프레임이 변경됨 (현재 상태를 저장해놓고 커널함수를 호출하려감)
최근 CPU는 Multimode Operation을 지원하는데, 이는 가상 머신 관리자(VMM) 모드가 있음. 사용자 프로세스보단 많은 권한을 가지지만, 커널 프로세스보단 적은 권한을 가짐.
Process Management
프로세스는 실행중인 프로그램으로, 시스템 내에서 작업 단위이다.
프로세스는 CPU, 메모리, I/O, 파일 등 리소스가 필요하고, 초기화 데이터가 필요하다.
프로세스가 종료되면 재사용 가능한 모든 리소스를 회수해야 한다.
단일 스레드 프로세스는 다음 명령어를 실행할 위치를 지정하는 하나의 PC를 갖는다.
다중 스레드 프로세스는 각 스레드마다 하나의 PC를 갖는다.
다음은 운영체제가 프로세스 관리를 위해 수행하는 작업중 일부다.
1) 사용자 및 시스템 프로세스 생성 및 삭제
2) 프로세스 일시 중지 및 재개
3) 프로세스 동기화를 위한 메커니즘 제공
3) 프로세스 통신을 위한 메커니즘 제공
4) 교착 상태 처리를 위한 메커니즘 제공 (여러 프로세스가 서로가 끝나기를 기다림)
Memory Management
프로그램을 실행하기 위해선 명령어와 프로그램에서 필요한 모든 데이터가 메모리에 있어야 한다.
메모리 관리를 통해 CPU 이용률을 최적화하고 사용자에 대한 컴퓨터 응답 시간을 향상시킬 수 있다.
다음은 운영체제가 메모리 관리를 위해 수행하는 작업중 일부다.
1) 현재 메모리의 어떤 부분이 누구에 의해 사용되고 있는지 추적
2) 메모리로 프로세스 및 데이터를 이동할지 말지 결정
3) 필요에 따라 메모리 공간을 할당하거나 할당 해제
File-System Management
운영체제는 정보 저장과 관련된 물리적 특성을 논리적 저장 단위인 file로 추상화한다.
각 매체는 장치(디스크 드라이브, 테이프 등)에 의해 제어되고, 이러한 매체는 액세스 속도, 용량 등의 속성을 가진다.
파일은 일반적으로 디렉토리에 구성돼있다.
대부분의 시스템에서는 누가 무엇에 액세스할 수 있는지 결정하기 위한 액세스 제어가 있다.
다음은 운영체제가 파일시스템 관리를 위해 수행하는 작업중 일부다.
1) 파일 및 디렉토리 생성 및 삭제
2) 파일 및 디렉토리 조작을 위한 기본 연산
3) 파일을 보조 저장장치에 매핑
4) 안정적인(비휘발성) 저장 매체로 파일 백업
Mass-Storage Management
주기억장치에 들어가지 않는 데이터 또는 장기간 보관해야 하는 데이터를 저장하는데 사용.
다음은 운영체제가 대용량 저장장치 관리를 위해 수행하는 작업중 일부다.
1) 마운트 및 언마운트
2) 빈 공간 관리
3) 저장 공간 할당
4) 디스크 스케줄링
5) 파티션 설정
6) 보호
Caching
사용 중인 정보는 일시적으로 느린 저장장치에서 빠른 저장장치로 복사된다. 메모리를 찾을 때 먼저 캐시를 확인하여 정보가 있는지 여부를 결정한다. 정보가 캐시에 있다면 캐시에서 직접 사용하고, 없으면 캐시로 복사해서 사용한다.
캐시는 저장장치보다 작으므로, 캐시 크기와 대체 정책이 중요하다. 캐싱을 통해 속도를 높이고 전체 시스템 성능을 향상시킬 수 있다.
저장장치간 속성을 나타낸 표다. 저장장치 계층간 이동은 명시적 또는 암시적으로 발생할 수 있다.
데이터 A라 디스크에서 레지스터로 이동할 때, magnetic disk -> main memory -> cache -> registers 로 이동한다.
다중 프로세스 환경에서는 모든 CPU가 캐시에 가장 최신 값을 갖도록 하드웨어에서 캐시 일관성을 제공해야 한다.
I/O Subsystem
IO 하위시스템은 다음의 기능을 한다.
1) I/O 메모리 관리, 버퍼링, 캐싱, 스풀링을 포함
2) 일반 장치 드라이버 인터페이스
3) 특정 하드웨어 장치를 위한 드라이버
Protection and Security
Protection: 운영체제에서 정의된 자원에 대한 프로세스 또는 사용자의 액세스를 제어하는 모든 메커니즘을 의미
Security: 내부 및 외부 공격으로부터 시스템을 방어하는 것을 의미
시스템에서는 일반적으로 먼저 사용자를 구분해서 사용자가 수행할 수 있는 작업을 결정.
사용자 ID 또는 보안 ID는 사용자마다 하나 씩 할당되며, 사용자가 소유한 모든 파일과 프로세스에 이를 연결해서 액세스 제어를 결정함.
그룹식별자(Group ID)는 일련의 사용자를 정의하고 관리할 수 있도록 하고, 각 프로세스와 파일에도 연결됨.
권한 상승을 사용해서 사용자가 더 많은 권한을 가진 effective ID로 변경할 수도 있음.
Virtualization
운영체제에서 다른 운영체제 내에서 응용 프로그램을 실행할 수 있게 함.
소스 CPU 유형이 대상 유형과 다른 경우 에뮬레이션을 사용함. - 가장 느린 방법으로, 네이티브 코드로 컴파일되지 않은 경우 interpretation도 사용됨.
가상화는 게스트 운영체제도 네이티브로 컴파일된 상태에서 호스트 운영체제 위에서 실행됨.
가상머신관리자(VMM)은 가상화 서비스를 제공한다. 이를 통해 호스트 운영 체제에서 여러 게스트 운영 체제를 실행하고 이들간 자원을 공유하거나 분리할 수 있다. 가상화는 여러 운영체제에서 애플리케이션을 개발하고 여러 시스템을 사용하지 않고도 QA 테스트를 수행할 수 있도록 해준다.
Distributed Systems
분산 컴퓨팅이란 서로 다른 시스템을 네트워크로 연결하여 구성하는 것이다.
시스템들은 종종 다른 유형의 하드웨어, 소프트웨어를 가지고 TCP/IP 프로토콜로써 통신한다.
네트워크 운영체제는 네트워크를 통해 시스템 간에 서비스를 제공하는 기능을 한다. 시스템 간의 메시지 교환을 가능하게 하는 통신 방식을 제공하고, 단일 시스템인 것처럼 보이게 만드는 기술도 제공한다.
Computing Enviroments
A) Traditional
전통적인 컴퓨터 환경은 독립적인 일반 목적의 컴퓨터 시스템으로 구성된다.
하지만 대부분의 시스템이 다른 시스템과 상호 연결돼있기에 이런 경계가 흐려지고 있다.
인터넷을 통해 다른 시스템에 연결되는 포털은 내부 시스템에 대한 웹 액세스를 제공하고, 네트워크 컴퓨터는 웹 터미널과 같은 역할을 한다. 또, 모바일 컴퓨터는 무선 네트워크를 통해 상호 연결된다.
네트워크는 점차 보편화되고 있고, 가정 시스템에서도 공격으로부터 보호하기 위한 방화벽을 사용한다.
B) Mobile
모바일 컴퓨터 환경은 휴대폰, 태블릿 등의 환경이다.
추가 기능으로 GPS, 자이로스코프 등이 있고, VR과 같은 새로운 유형의 앱이 있다.
C) Client-Server
클라이언트-서버 컴퓨터 환경은 똑똑한 PC가 덜똑똑한 클라이언트의 터미널을 대체하는 방식이다.
계산서버는 클라이언트가 서비스를 요청할 수 있는 인터페이스를 제공한다.
파일서버는 클라이언트가 파일을 저장하고 검색할 수 있는 인터페이스를 제공한다.
이런 클라이언트-서버 환경은 일반적으로 네트워크를 통해 이뤄지고, 분산 컴퓨팅과 관련이 있다.
D) Peer to peer
P2P 컴퓨터 환경은 분산 시스템의 다른 모델로, 클라이언트와 서버를 구분하지 않으며 모든 노드가 동등한 관계이다.
각 노드는 클라이언트, 서버 또는 둘 다로 동작한다.
E) Cloud Computing
클라우드 컴퓨터 환경은 네트워크를 통해 컴퓨터, 저장 및 애플리케이션을 서비스로 제공하는 것이다.
가상화를 기반으로 하기에 가상화의 논리적 확장이다.
여러가지 종류가 있다.
1) Public Cloud: 누구든지 사용할 수 있음.
2) Private Cloud: 회사에서 자체 운영
3) Hybrid Cloud: 공개 및 비공개 클라우드의 구성 요소를 모두 포함한다.
SaaS(Software as a Service)는 하나 이상의 애플리케이션이 인터넷을 통해 제공된다.
PaaS(Platform as a Service)는 애플리케이션 사용을 위해 준비된 소프트웨어 스택이다.
IaaS(Infrastructure as a Service)는 인터넷을 통해 서버 또는 저장소가 제공된다.
F) Real-Time Embedded Systems
실시간 임베디드 시스템은 컴퓨터의 가장 흔한 형태이다. 특수 목적, 제한된 목적 OS, 실시간 OS 등이 다양하게 사용된다. 사용 용도는 확대되고 있다.
다른 특수 컴퓨팅 환경도 있는데, 일부는 OS를 갖고 있고, 일부는 OS 없이 작업을 수행한다.
실시간 OS는 잘 정의된 고정된 시간 제약 조건을 갖는다. 처리는 제약 조건 내에서 수행되어야 한다.
'학교강의필기장 > 운영체제론' 카테고리의 다른 글
운영체제론[6]: 프로세스 간 통신, RPC (0) | 2023.04.24 |
---|---|
운영체제론[5]: 프로세스, 공유메모리와 매시지패싱 (0) | 2023.04.24 |
운영체제론[4]: 시스템 서비스, 운영체제 구조 - 커널, 시스템 부트 및 디버깅 (0) | 2023.04.24 |
운영체제론[3]: OS 서비스 기능, 시스템콜 (0) | 2023.04.24 |
운영체제론[1]: 운영체제론 개요 1 (0) | 2023.04.24 |