일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- Class
- descriptive statistics
- 셀레니움
- 자바
- Operator
- Entity
- Physical Scheme
- systemd
- BFS
- preprocessing
- Unity
- External Scheme
- 리눅스
- 백준
- spring
- Java
- X.org
- 리눅스 마스터 1급
- python
- OOP
- Polymolphism
- Mac
- Entity Set
- dbms
- Binary Search
- selenium
- Reference Type
- Inheritance
- literal
- X윈도우
- Today
- Total
목록2024/04 (27)
Byeol Lo
분산 시스템은 물리적으로 분리되고 가능한 경우에는 heterogeneous computer system의 모음으로도 볼 수 있으며, 사용자에게 시스템이 유지하는 다양한 리소스에 대한 접근을 제공하기 위해 네트워크로 연결되게 된다. 공유 리소스에 대한 접근은 계산 속도, 기능, 데이터 가용성 및 신뢰성을 증가시키며, 일부 운영체제는 네트워크 액세스를 파일 액세스의 형태로 일반화 하여 네트워크 세부 정보를 네트워크 인터페이스의 장치 드라이버에 포함시킨다. 다른 운영체제는 사용자가 명시적으로 네트워크 기능을 호출하도록 한다. 일반적으로 시스템은 두 가지 모드의 혼합을 포함하는데 예를 들어서 FTP와 NFS가 있다. 분산 시스템을 생성하는 프로토콜은 해당 시스템의 유틸리티와 인기에 큰 영향을 줄 수 있다. 즉,..
가상화 기술은 단일 컴퓨터의 하드웨어(CPU, Memory, Disk Drive, NIC, 등)를 여러 다른 실행 환경으로 추상화하는 기술이다. 각각의 분리된 환경이 자체적인 개인용 컴퓨터에서 실행되는 것처럼 보이도록 만든다. 이러한 환경은 서로 다른 개별 운영 체제로 볼 수 있고, 동시에 실행되며, 서로 상호 작용할 수 있다. 가상 머신의 사용자는 단일 운영 체제 내에서 다른 운영체제로의 전환이 가능하다. 일반적으로 가상화 소프트웨어는 에뮬레이션을 포함한 클래스의 하나인데, Emulation은 소프트웨어에서 컴퓨터 하드웨어를 시뮬레이션 하는 것으로, 소스 CPU 유형이 대상 CPU 유형과 다를 때 주로 사용된다. 애플에서는 Rosetta라는 에뮬레이션이 그 예이다. 하지만 에뮬레이션은 많은 자원이 할당..
컴퓨터 시스템이 다중 사용자 및 다중 프로세스를 지원하는 경우에 데이터 접근은 운영 체제로부터 적절한 권한을 얻은 프로세스만 가능하도록 제한된다. 이를 위해 메모리, CPU, 기타 리소스에 대한 접근이 제어되고, 장치 제어 레지스터는 사용자가 접근할 수 없어서 주변 장치의 무결성(integrity, 데이터나 시스템이 원래 상태나 조건을 유지하고 있는 것)이 보호된다. Protection(보안)이란 컴퓨터 시스템에서 정의된 자원에 대한 프로세스나 사용자의 접근을 제어하는 장치이다. 이 메커니즘은 적용될 제어를 지정하고 이를 시행하는 수단을 제공해야 한다. 보안은 구성 요소 하위 시스템 간 인터페이스에서 잠재적 오류를 감지함으로써 신뢰성을 향상시킬 수 있다. 인터페이스 오류의 조기 감지는 종종 정상 작동 중..
이제 운영체제의 구동 방식을 보았으니 이 구동을 하는 것 자체에서 오는 자원 관리에 대해 알아보자. 시스템의 CPU, 메모리 공간, 파일 저장 공간 및 I/O 장치는 운영체제가 관리해야 하는 자원 중 일부이기에 이를 효율적으로 관리해야 하는 자원이다. 1.5.1 Process Management 프로그램은 그 명령이 CPU에 의해 실행될 때에만 무언가를 수행할 수 있는데, 실행 중인 프로그램은 프로세스라고 한다. 그래서 컴파일러, 워드 프로세싱도 같은 프로그램은 프로세스이다. 이런 프로세스는 실행 중인 프로그램의 인스턴스로 간주할 수 있을테지만, 프로세스라는 것이 더 와닿는 개념임을 알게 될 것이다. 프로세스가 동시에 실행되도록 하기 위해 시스템 호출을 통해 서브프로세스를 생성할 수 있다. 프로세스는 C..
이제 컴퓨터가 어떻게 구동이 되는지 보자. 처음에 컴퓨터가 실행하기 위해 초기 프로그램이 필요하고, 이는 전원 켤 때, 재부팅을 할 때 필요하다. 이런 부트스트랩 프로그램은 간단하며 일반적으로 하드웨어 내의 펌웨어에 저장된다. CPU 레지스터부터 장치 컨트롤러, 메모리 내용까지 시스템의 모든 측면을 초기화하며, 운영체제를 로드하고 해당 시스템을 실행하는 방법을 알아야 한다. 그 후에 이 커널이 제공이 되고 실행되면 시스템과 사용자에게 서비스를 제공하게 된다. 일부 서비스는 커널 외부에서 제공되며, 부팅 시 메모리에 로드되어 데몬으로 실행되며, 전체 시스템이 실행되는 동안 활성화된다. 리눅스에서는 첫번째 시스템 프로그램은 systemd이고, 또 다른 많은 데몬들이 다른 서비스들을 위해 실행이 된다. 이 단..
이 전에서는 컴퓨터 시스템의 구조에 대해 소개하고 요약했는데, 여기서는 다양한 장치들을 통해서 컴퓨터 시스템은 일반적인 프로세서의 사용량에 따라 여러가지 방식으로 컴퓨터 시스템을 구성할 수 있음을 볼 것이다. 다양한 컴퓨터 아키텍쳐들이 있기 때문에 이는 사용하면서 익숙해지는 것이 좋고 그런것이 있구나 정도로만 이해하길 바란다. 1.3.1 Single-Processor Systems 과거에는 대부분의 컴퓨터 시스템이 하나의 CPU와 단일 처리 코어를 가진 단일 프로세서를 사용했었다. 이러한 시스템은 일반 목적의 CPU와 함께 특수 목적의 장치별 프로세서가 포함되어 있었고, 특수 목적 프로세서는 주 CPU와 별개로 작동하며, 주로 운영체제에 의해 관리되었다. 여기서 코어라는 것은 CPU 내부의 실제 처리 단..
운영체제가 글로만 어떤건지 보았으니 이제 그 실체를 보자. 현대 일반적인 컴퓨터 시스템은 하나 이상의 CPU와 공통 버스(System Bus)를 통해 연결된 여러 디바이스 컨트롤러로 구성된다. 시스템 버스는 구성 요소 간의 액세스와 공유 메모리를 제공한다. 여기서 각 디바이스 컨트롤러는 특정 유형의 장치( 디스크 드라이브, 오디오 장치, 그래픽 디스플레이, 마우스, 키보드, ... ) 를 담당하게 된다. 컨트롤러에 따라 둘 이상의 장치가 연결될 수 있는데, 그 예로 위의 USB controller가 있다. 여기서 CPU는 장치 컨트롤러가 작동하는 데 필요한 데이터를 임시로 저장하는 작은 저장소와 특수 목적으로 사용되는 레지스터(Special Purpose Register)를 갖고 있다. 특수 목적 레지스..