week08.TIL(Today I learned) 운영체제(OS), 추상화, 페이징

Baedonguri·2022년 5월 19일
0
post-thumbnail

운영체제(OS)

  • 컴퓨터를 시스템의 하드웨어적인 자원과 소프트웨어적인 자원을 효율적으로 운영 및 관리함으로써 사용자가 시스템을 이용하는데 편리함을 제공하는 시스템 소프트웨어

운영체제가 필요한 이유?

  • 하드웨어 사용을 위한 API(Application Programming Interface) 제공
  • 하드웨어의 세부 정보를 숨기기 위한 목적

운영체제의 주요 역할

  • 하드웨어 사용을 위한 추상화(abstractions) 설계
    -> 응용 프로그램 사용을 위한 APIs 정의
  • 버그나 의도된 에러에 대한 보호 및 분리
  • 하드웨어 자원(resource) 공유

추상화란?

중요하지 않을 수 있는 일부 세부사항을 무시하여 이해하기 쉽게 만드는 과정 또는 결과를 의미한다.
예를 들면 차량을 운전할 때 핸들을 움직이면 원하는 방향으로 갈 수 있는 것을
우리는 안다. 하지만 핸들을 조작함으로써 차량 내부에서 돌아가는 메커니즘은 일반적인 사용자가 알 수는 없다.

하드웨어를 사용하기 쉽게 만드는 방법은 무엇이 있을까?
1. 하드웨어 리소스(자원) 및 프로세스를 묶는 각 추상화를 구축하는 것

CPU -> CPU 가상화(Virtualizing CPU)
Memory -> 가상 주소 공간 (Virtual address space)
Storage -> 파일 (File)
  1. 추상화를 사용하기 위해 응용프로그램에 API를 제공하는 것

설계시 생각해야 할 것

- 하드웨어 자원을 활용하기 위해, OS는 여러개의 응용 프로그램을 실행한다.
- 응용 프로그램 간의 상호간 보호

결론은 각 응용프로그램이 단일 시스템에서 돌아가는 듯한 착각을 주는 추상화를 구축해야한다.
프로세스는 실행된 하나의 응용 프로그램.

지금까지의 프로세스는 어떻게 생겼을까?

위의 그림은 우리가 알고 있는 메모리(프로세스)의 구조이다.
이것은 매우 깨끗하고 좋은 추상화이며, 실제로는 각 프로세스는
자체 주소 공간과, 자체 가상 CPU, 자체 파일을 가지고 있다.

주소 공간의 추상화

  1. 어떻게 가상메모리를 물리 메모리에 연결할 수 있을까?
  • 각 물리메모리를 작은 덩어리(page)로 나누고
  • 가상주소에서 물리주소로의 매핑을 생성하는 방식
  1. 가상주소를 물리주소로 맵핑하기 위한 방식
  • Segmentation
  • Paging
  • Segmentation paging

메모리 관리 영역에서 Contiguous allocation(연속할당) 방식은 외부 단편화 문제를 발생시켰고,
이러한 문제를 해결하기 위해 메모리를 동일한 크기인 page로 쪼개는 방법이 나오게 됨
이러한 방식을 Paging(페이징)이라고 함

페이징이란 논리주소의 고정된 페이지(Page)라고 불리는 블록들로 분할 관리하는 기법.

profile
Software Engineer

0개의 댓글