컴퓨터공학/운영체제

[운영체제/OS] Introduction to Operating Systems

NIMHO 2022. 6. 18. 20:04
728x90

복습하기 위해 학부 수업 내용을 필기한 내용입니다.
해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다.
그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다.

운영체제(OS)란?

컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층을 말한다.

  • 좁은 의미의 운영체제 : 운영체제의 핵심 부분으로 메모리에 상주하는 부분, 흔히 커널(kernel)이라고 부른다.
  • 넓은 의미의 운영체제 : 커널뿐 아니라 각종 주변 시스템 유틸리티를 포함하는 개념이다. 항상 메모리에 올려져 있는 것이 아닌 필요할 때 올라가는 별도의 프로그램이다.

 

Three Main Features of Operating Systems

1. Virtualization


CPU Virtualization
실제로 하나의 process에서 마치 process가 무한히 있는 것처럼 느껴지는 착각을 느낄 수 있다.

  • 한꺼번에 많은 프로그램(또는 많은 사용자)을 실행
  • 정책(ex, 스케줄링) 그리고 리소스 관리

example : 한꺼번에 여러 프로그램을 실행(단일 CPU) 사용


Memory Virtualization
각각의 process가 자신의 고유한 가상 메모리 공간을 가지고 있다는 착각을 느낄 수 있다.

  • physical memory는 바이트의 배열
    • 일반 computing system에서 physical memory는 DRAM이고, 용량에 제한이 있다.
  • 프로그램은 모든 데이터 구조를 메모리에 저장
    • Read memory (load) : 데이터에 접근할 수 있는 주소를 지정
    • Write memory (stroe) : 주어진 주소에 쓸 데이터를 지정
  • OS는 주소 공간을 physical memory에 매핑한다.
    • protection : 실행 중인 프로그램 내의 메모리 참조는 다른 process 주소 공간에 영향을 주지 않는다.
    • caching : physical memory는 OS에 의해서 관리되는 공유 리소스다.

 

 

2. Concurrency

 

공유 리소스의 동시 접근은 미묘하고 에러가 발생하기 쉽다.

  • OS는 한 번에 많은 것을 저글링하고 있는데, 처음에 프로세스 하나를 실행한 다음 다른 프로세스를 실행하는 것이다.
  • 현대의 멀티 스레드 프로그램도 동시성 문제를 나타낸다.
  • 보호, 잠금 또는 기타 동기화 방법 필요

 

Loop는 두 작업자 각각이 Loop에서 공유 카운터를 증가시키는 횟수를 결정합니다.


Why is this happening?

  • 공유 카운터를 증가 → 세 가지 지침
    • 메모리에서 register로 counter 값을 Load
    • counter 증가
    • 메모리에 다시 저장
  • 이 세 가지 명령은 'atomically'하게  실행되지 않는다.
    • 동시성(concurrency) 문제가 발생!!!

 

 

3. Persistence

 

Example : journaling file system (JFS)

  • 특별한 데이터 구조체 혹은 데이터 영역에 시스템의 변경사항들을 기록
  • 이를 참조해 파일 시스템에 변경 사항을 적용하기 전 변경점들을 추적
  • 이를 통해 저널링 파일 시스템은 정상 상태로 빠르게 복구, 내부 데이터 손상 가능성을 줄인다.
    • Journaling : storage에 데이터 변경 내역을 저장하는 활동

Source : https://www.howtogeek.com/howto/33552/htg-explains-which-linux-file-system-should-you-choose,/

 

Which Linux File System Should You Use?

When formatting partitions on a Linux PC, you’ll see a wide variety of file system options. These options don’t need to be overwhelming. If you’re not sure which Linux file system to use, there’s a simple answer.

www.howtogeek.com

 

Example : Copy-on-Write

  • 말 그대로 작성 시 이전의 내용을 copy 한다는 뜻
  • Linux에서 자식 process를 fork 하면 같은 메모리 공간을 공유
  • 부모 process가 데이터를 새로 넣거나, 수정, 삭제하게 되면 같은 메모리 공간을 공유 X
  • 부모 process 해당 페이지를 복사한 다음 수정하는 작업

 

 

다음은 Computer System에 대해서 블로그를 작성해 보도록 하겠습니다.

복습하는 과정이지만 많은 분들에게 도움이 되었으면 좋겠습니다.

728x90

'컴퓨터공학 > 운영체제' 카테고리의 다른 글

[운영체제/OS] Introduction to Computing System  (0) 2022.06.20