Coding, Filming, and Nothing
article thumbnail

1장에서 다룰 내용 

-> 운영체제가 커버하는 내용에 대한 프리뷰를 할 예정 

 


1.

운영 체제란?

 

  • 운영체제의 적절하고, 완벽한 정의가 없다.
  • 하지만 대략적으로 운영체제는 
    • 유저와 하드웨어의 중간(intermediary)에 있으며 
    • Kernel과 추가적인 프로그램(커널이 아닌 것!)들로 구성이 되어 있다.
      • 커널 : 항상 실행되고 잇는 운영체제의 핵심
        • 시스템과 어플리케이션 프로그램은 포함하지 않는다. 
      • Middleware : 개발자가 응용하는 추가적인 서비스를 제공하는 소프트웨어 프레임워크의 집합 (ex, database, multimedia, graphics)

#필기

  1. 커널은 매우 명확한 유닛이다. 
    - 하드웨어에 직접 접근할 수 있다.
    - 부팅 후 계속해서 실행이 된다. 

 

  • 운영체제의 목표
    • 유저의 프로그램을 실행하고, 유저의 문제(problems)를 풀기 쉽게 만드는 것.
    • 컴퓨터 시스템을 사용하기 편하게 만드는 것
    • 컴퓨터 하드웨어를 효율적인 측면에서 사용하는 것 

#필기 

  1. 만약 운영체제가 없으면, 모든게 다 어려워진다. (ex. 화면에 "hello"를 띄우는 것)
     - 따라서, 프로그램을 실행시킬 수 있는 환경을 제공하고, 지나치게 low level의 조작을 필요하지 않게, 편리하게 함. 
  2. ★ OS는 결국 Rss를 놀지 않게 해서 효율성을 높이는 것이 중요하다. (ex, CPU - multiCore ...) 

 

 

 

 

 

2.

컴퓨터 시스템의 구성요소

 

  • 컴퓨터 시스템 
    • 하드웨어
       기존적인 연산 자원을 제공해줌 
      • CPU, memory, I/O 장치 
    • 운영체제
      • 유저와 다양한 어플리케이션들 가운데 하드웨어 사용을 제어하고 조정을 한다. 
    • 프로그램 (application) 
      • 유저의 문제들을 계산하고 해결하기 위해, 시스템 자원이 사용되는 방법을 정의
      • 워드 프레스, 컴파일러, 웹 브라우저, 데이터베이스 시스템, 비디오 게임 등 
    • 유저
      • 사람, 기계, 그 외 컴퓨터 들 

 

 

#필기

  1. 운영체제는 결국 자기가 일을 하는 것이 아니고, 환경을 제공을 하는데 이때 운영체제 자체가 일반적인 프로그램과 동작하는 것이 매우 다르다. 하드웨어나 컴퓨터 RSS를 직접 접근할 수 있는 권한이 운영체제에 100% 존재하다. 그런 접근을 가능하게 하는 모드가 Kernel mode이다. 
  2. 프로그램의 경우, 동작하거나 접근할 수 있는 권한은 낮으나 의미있는 일을 수행한다. 안전한 명령어만 실행가능하기 때문에 시스템 전체에 해를 끼칠 수 있는 명령은 실행이 불가하다. 
  3. 단순하게, 하드웨어에 직접 접근을 할 수 있냐?를 따지면 된다. OS는 kernel mode를 통해서 직접 접근이 가능하지만 프로그램의 경우 가능하지 않다. 

 

 

 

 

 

3. 

운영체제가 하는 일은?

 

  • 운영체제는 환경을 제공해준다.
    • 운영체제 그 자체로 유용한 기능을 수행하지는 않는다.
    • 하지만, 유저는 운영체제가 제공해주는 환경을 통해 무언가를 더 쉽게 할 수 있다. 
  • 운영체제는 시스템 자원을 관리한다.
    • let the users and the programs share the system resources in time and space
    • 효율적인 관점에서 유저가 컴퓨터 하드웨어를 사용하게 함. 

 

 

#필기

  1. 운영체제는 특정 일을 하기 위한 "환경"을 제공한다.
  2. 요즘은 프로그램을 수십개를 동시에 실행하는데, 이렇게 여러개의 프로그램이 동시에 수행되는 경우에 결국 여러개의 RSS(ex. memory)를 나누어서 써야하는데 이를 나누고 처리하는 것을 
  3. 효율적인 관점. 어떠한 요청으로 인한 CPU의 interrupt 시간(waste time)에 대한 처리 -> I/O말고 다른 프로그램을 실행할 수 있게하고, I/O가 끝난 경우에 다시 돌아옴. 

 

 

 

 

 

4.

User View 

> 사용자 관점에서 어떤 것이 중요한가? 

 

다양한 운영체제들의 예

 

 

#필기

  1. 운영체제에서 가장 중요한 것이 무엇이냐? 라는 질문에는, 답하기 어렵다. 상황에 따라서 그것이 다르고 각 운영체제가 사용되는 목적이 다르기 때문이다.

 

 

 

 

 

5.

System View

 

  • 운영체제는 자원을 할당한다.
    • 또한, 모든 종류의 자원을 관리를 한다.
      • CPU, memory, file-storage, I/O device, ...
    • 충돌을 유발하는 request들 사이에서 공정하고 효율적인 자원 사용을 결정한다(스케쥴링). 

 

  • 운영체제는 제어 프로그램이다.
    • 프로그램의 실행을 제어하여 에러와 유저의 부적절한 컴퓨터 사용을 방지함 

 

 

#필기

  1. Com RSS가 alloc 되면 독점 사용이 보장을 해주어야 한다. 즉, 다른 request에 의해서 사용 중인 자원을 뺏기지 않도록 보호해주어야 한다. 그 이후 사용이 완료 되었다면 정상적으로 반납이 이루어져야한다. 

 

profile

Coding, Filming, and Nothing

@_안쑤

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!