티스토리 뷰
1.What are the design goals of memory virtualization in the pre-class?
- 운용체제가 메모리 가상화를 사용하는 이유는 사용하기 쉽게 시스템(프로세스가 동작할 수 있는 환경)을 제공하기 위해서 이다. 작은 메모리에 여러 프로세스를 담기보다는 가상의 연속된 주소 공간을 이용해 걱정없이 프로세스의 정보를 담고, 찾을 수 있게 하기 위해서 이다.
2.
Explain The Principle of Isolation.
- 고립이란, 한 프로세스가 다른 프로세스에 침범하지 않게 하는 것이다.
서로에게 피해를 주지 않도록하는 원칙으로, 다른 운영체제에도 플러그인처럼 적용이 가능하다.
3.
Explain double free and dangling pointer.
- double free는 free함수를 여러번 호출하는 에러이고, dangling pointer는 포인터에 아무값도 달려있지 않는 것이다.
4.
What is system call interposition?
- interposition과 비슷한 개념으로, 사용자가 운영체제에게 어떤 요청을 보낼 때, 이 요청에 개입하는 존재가 있음.
시스템 콜은 운영체제에게 영속적인 변화를 줄 수 있기 때문에 보안적으로 허용이되어 있는지 확인해야 함. open,write,socket 등 많은 시스템 콜들이 제한이 안된 경우가 많음. 파일오픈 후 작성할 때, 권한을 직접 설정해 준다. 하지만 시스템 내에 굉장히 중요한 파일을 건드리려 할때, 개입이 필요한 경우가 있다. 모니터링으로 블로킹 가능.
5.
How can we achive dynamic (hardware-based) relocation? Explain in brief.
-동적 리로케이션을 위해 필요한 점.
1.privileged mode
- 프로텍션을 위해서 필요함.
- base bound register 값을 맘대로 변경하지 못하게 하기 위해서.
2.base/bound register
CPU별로 하나씩 필요
3.ability to translate virtual address and check if within bound
하드웨어가 가상주소를 바꾸고 결과가 bound 주소 내에 있는지 확인해야 함.
4.privileged instruction to register exception handler
- 예외처리를 위한 특권 명령어
5.ability to raise exception
- base bound를 넘었을 때 예외 처리를 위해서.
동적 재할당
LDE 프로토콜!!
= 프로그램을 직접 하드웨어에서 실행하되, 유저모드에서 동작해 특별한동작을 해야할 때, 모드를 바꿔서 서비스를 받는 형태로 수행.
하드웨어에서 실행해 속도가 빠름. 운영체제에게 서비스를 요청하기 때문에 보안적으로 안정.
efficiency & control를 위해 TLB,page table을 다룸.
메모리를 여러 프로세스가 공유를 하기 대문에 어떻게 하면 서로간에 고립을 유지할 수 있을까를 운영체제가 고려.
flexibility
프로세스가 자신의 주소공간을 마음대로 사용할 수 있게 해 여러가지 일들을 처리해줌.
메모리의 가용성을 효율적으로 다루고, 프로그램의 요구를 유연성 있게 다룰수 있는가, 메모리에 대한 접근을 어덯게 컨트롤 할 것인가, 메모리 접근이 적절히 통제되는지 확인, 제한 할수 있는가.
주소 변환
프로세스가 메모리에 있는 내용을 불러온다던가, 계산을 한다던가의 메모리 접근에 대한 가상주소->물리주소로 바꿔 실제 메모리 시스템이 이해할 수 있게 하드웨어가 해줌.
하드웨어의 역할
레퍼런스?? => y=x; 처럼의 레퍼런스는 하드웨어에 의해 수행됨.
운영체제의 역할
메모리의 사용가능한 위치, 컨트롤 중재
프로그램이 사적인 메모리공간을 가지고 있고, 코드와 데이터가 올라가 있다. 근데 복잡한 물리적 공간이 공유되고 있다. 하지만 프로그램 입장에서는 모두가 자신의 공간인것 처럼 보여야한다. 운영체제의 도움을 받아서.
interposition(개입)
메모리에 가상화 후,접근 시 하드웨어에 의해 개입이 발생. 메모리 접근은 가상주소에 하지만 물리적 주소로 바뀌는 과정에서 하드웨어의 개입이 발생함. api동작(인터페이스 사용으로 서비스를 요청한다던가) 과정에서 운영체제나 다른 존재가 다른 목적으로 개입해야 하는 상황 존재. 이 과정에서 api를 동작시키는 주체에게 안보여야함.
감금 원리.(confinement principle)
confinement : 설치된 응용프로그램이 내 주소록을 가져가 인터넷으로 전송한다는 등의 행위를 맘대로 하지 못하도록 갇힌 상황을 만듬.
system call interposition은 interposition과 비슷함.
운영체제에게 어떤 요청을 보낼 때 이 요청에 개입하는 존재가 있음. 이를 통해 프로세스가 마음대로 행동하는 것을 막음.
시스템 콜은 운영체제에게 영속적인 변화를 줄 수 있기 때문에 보안적으로 허용이되어 있는지 확인해야 함. open,write,socket 등 많은 시스템 콜들이 제한이 안된 경우가 많음. 파일오픈 후 작성할 때, 권한을 직접 설정해 준다. 하지만 시스템 내에 굉장히 중요한 파일을 건드리려 할때, 개입이 필요한 경우가 있다. 모니터링으로 블로킹 가능.
dynamic relocation(base and bounds)
base register : 가상 주소와 실제 주소의 갭을 기록해 놔서 다음에도 이 기록을 사용해 사용할 수 있게 함.
bound regiseter : 경계 레지스터, 16kb만큼의 공간을 사용할 수 있다는걸 기록해둠.
물리주소 = 가상주소+base register 값
base 값이 32kb(32768)이고 명령어의 위치가 128이면 32768+128임. 이러한 동작은 런타임 과정에서 발생.
가상 메모리 주소는 0부터 시작해야 함. 주소 값 자체가 0-16kb 범위내에 있어야 함.
16kb를 넘도록 한다면? bound 레지스터는 특정한 메모리 레퍼런스가 bound 값 내에 있는지 확인하기 위함. 프로세스가 범위를 넘는 값을 가지고 있으면 예외를 발생시켜 프로그램 중단.
MMU
CPU 당 하나의 base,bound를 저장함. 이러한 레지스터를 포함해 메모리 관리에 사용한 것들을 MMU라고 함.
주소공간의 사이즈를 bound에 저장.
하드웨어 베이스 리로케이션
base 주소 변환, bound는 address space를 confine하는데 사용됨.
소프트웨어 베이스 리로케이션
static relo : loader가 실행파일을 가져와 실행해야할 때 가상 주소를 물리메모리에 맞춰 변환해줌. 문제가 많음.protection 없음.
하드웨어 베이스 리로케이션 예제
4kb의 주소공간. 16kb의 위치에서 시작.
동적 리로케이션을 위해 필요한 점.
1.privileged mode
- 프로텍션을 위해서 필요함.
- base bound register 값을 맘대로 변경하지 못하게 하기 위해서.
2.base/bound register
CPU별로 하나씩 필요
3.ability to translate virtual address and check if within bound
하드웨어가 가상주소를 바꾸고 결과가 bound 주소 내에 있는지 확인해야 함.
4.privileged instruction to register exception handler
- 예외처리를 위한 특권 명령어
5.ability to raise exception
- base bound를 넘었을 때 예외 처리를 위해서.
'컴퓨터 공학 > 운영체제' 카테고리의 다른 글
[운영체제]paging-introduction (0) | 2021.05.03 |
---|---|
[운영체제]Free-Space management (0) | 2021.05.02 |
memory API (0) | 2021.04.15 |
ADDRESS SPACES(주소 공간) (0) | 2021.04.14 |
segmentation (0) | 2021.04.12 |
- Total
- Today
- Yesterday
- AE
- 회귀
- AVTP
- automotive
- SOME/IP
- automotive ethernet
- 차량 네트워크
- 차량용 이더넷
- problem statement
- PCA
- Ethernet
- 논문 잘 쓰는법
- 머신러닝
- AVB
- SVM
- many-to-many
- CAN-FD
- 케라스
- Python
- 딥러닝
- porks
- cuckoo
- one-to-many
- many-to-one
- 크로스 엔트로피
- 단순선형회귀
- 로지스틱회귀
- 이상탐지
- HTML
- json2html
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |