OS #1 OS, Memory

김태준·2023년 3월 1일
0

CS & OS Study

목록 보기
4/12
post-thumbnail

CS 학습에 앞서 기초적인 Computer Architecture에 대해 알아보았다. 이번부터 OS 관련 학습을 진행하고자 한다.

✅ 운영체제란?

하드웨어를 관리하고 컴퓨터 시스템의 자원들을 효율적으로 관리하며 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.

  • 즉, 운영체제는 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어라고 할 수 있다.
  • 사용자와 컴퓨터 하드웨어 사이에 위치해 하드웨어를 운영, 관리하고 명령어를 제어해 응용 프로그램 및 하드웨어를 소프트웨어적으로 제어 및 관리해야 한다.
    종류) Window, Linux, MS-DOS 등

🎈 운영체제의 역할

✨ 1. 프로세스 관리

: 운영체제에서 작동하는 응용프로그램을 관리하는 기능. 어떤 의미에서는 CPU 관리로 볼 수 있다. 즉, 현재 CPU를 점유해야 할 프로세스를 결정하고, 실제 CPU를 프로세스에 할당하며 프로세스 간 공유 자원 접근과 통신 등을 관리

  • 프로세스, 스레드
  • 스케줄링
  • 동기화
  • IPC 통신

✨ 2. 저장 장치 관리

: 1기 저장장치에 해당하는 메인 메모리와 2차 저장장치에 해당하는 하드디스크, NAND 등을 관리하는 기능

  • 메모리 관리
  • 가상 메모리
  • 파일 시스템

1차 저장기능 (메인 메모리)

  • 프로세스에 할당하는 메모리 영역 할당/해제
  • 각 메모리 영역 간 침범 방지
  • 메인 메모리의 효율적 활용을 위한 가상 메모리 기능

2차 저장기능 (하드디스크, NAND Flash Memory 등)

  • 파일 형식의 데이터 저장
  • 이런 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리
  • FAT, NTFS, EXT2, JFS, XFS 등 많은 파일 시스템들이 개발되어 사용 중

✨ 3. 네트워킹

: TCP/IP 기반의 인터넷에 연결하거나, 응용 프로그램이 네트워크를 사용하기 위해선 OS에서 네트워크 프로토콜을 지원해야 한다.

  • TCP/IP
  • 기타 프로토콜

✨ 4. 사용자 관리

: OS는 하나의 PC를 여러 사람이 사용하는 환경도 지원해야 한다.

  • 계정 관리
  • 접근권한 관리

✨ 5. 디바이스 드라이버

: OS는 시스템의 자원, 하드웨어를 관리한다. 시스템에는 여러 하드웨어가 붙어있고 이들을 OS에서 인식하고 관리하게 만들어 응용 프로그램이 하드웨어를 사용할 수 있게 만들어야 한다. 따라서 OS 내 하드웨어를 추상화 해주는 계층을 디바이스 드라이버라고 한다.

  • 순차접근 장치
  • 임의접근 장치
  • 네트워크 장치

✅ 메인 메모리

  • 1기 저장장치에 해당하며 CPU가 직접 접근할 수 있는 기억 장치
  • 프로세스가 실행되기 위해선 프로그램이 메모리에 올라와야 함
  • 주소가 할당된 일련의 바이트들로 구성되어 있다.

CPU는 레지스터가 지시하는대로 메모리에 접근해 수행할 명령어를 가져오는데, 명령어 수행 시 메모리에 필요한 데이터 없는 경우 해당 데이터를 우선적으로 가져와야 한다.
=> 이러한 역할을 수행하는 것이 MMU(메모리 관리 장치)

🎈 MMU(Memory Management Unit)

  • 논리 주소를 물리 주소로 변환
  • 메모리 보호, 캐시 관리 등 CPU가 메모리에 접근하는 것을 관리해주는 하드웨어
  • 사용자가 기억장소를 일일이 할당해야 하는 불편 X
  • 프로세스 크기가 실제 메모리 용량을 초과해도 실행 가능
    메모리 공간이 한정적인 것을 보완하고자 가상주소(프로그램 상 사용자가 보는 주소 공간)가 등장했고 가상주소에서 실제 데이터가 담긴 곳에 접근하기 위해선 빠른 접근이 필요한데 이를 MMU가 처리한다.
    위 그림은 < base 레지스터와 limit 레지스터를 활용해 보호하는 기법 >
  • base 레지스터 : 메모리 상 프로세스 시작주소를 물리 주소로 저장
  • limit 레지스터 : 프로세스 사이즈를 저장

프로세스는 독립적인 메모리 공간을 가지며 자신의 공간에만 접근하는 독립적인 특성이 있기에, 합법적인 주소 영역을 설정해 잘못된 접근이 들어오면 trap을 발생시켜 메모리를 보호한다

위 방식으로 프로세스에 접근이 가능한 합법적인 메모리 영역은 [base, base+limit)으로 이외에 영역에서 접근 요구 시 trap을 발생시킨다.
또한, 안전성을 위해 base, limit레지스터는 사용자모드에서 직접 변경할 수 없도록 커널 모드에서만 수정가능하도록 설계한다.

profile
To be a DataScientist

0개의 댓글