Operating System

https://www.youtube.com/watch?v=vBURTt97EkA&list=PLBlnK6fEyqRiVhbXDGLXDk_OQAeuVcp2O

  • An Operating System(OS) is a program that manages the computer hardware.
  • It also provides a basis for Application Programs and acts as an intermediary between computer User and computer Hardware.

컴퓨터 하드웨어를 관리하는 프로그램이며, Application Program의 기반을 제공하고 컴퓨터 사용자와 컴퓨터 하드웨어의 중개자 역할을 합니다.

System Software: 하드웨어에 직접적으로 수정, 명령하는 소프트웨어입니다. 운영체제도 시스템 소프트웨어의 일종입니다.

Application program: 특정 Task를 수행하는 소프트웨어로 사용자에 의해 직접적으로 사용되는 소프트웨어입니다.

  • 하드웨어: Resources like CPU, Memory, I/O Devices(키보드, 마우스, 모니터...)

운영체제가 없다면 흔히 사용하는 MS Office의 Word를 하드웨어와 직접 소통하면서 실행, 저장, 입력 등 필요한 것을 수행하게 될 것입니다. 운영체제를 사용하는 것은 사용자와 하드웨어의 중개자를 사용하는 것입니다. 사용자의 요청과 하드웨어의 응답이 운영체제를 통해 소통으로 이뤄지는 것입니다.

운영체제는 단순히 사용자와 하드웨어를 매개하는 것이 아니라 자원 할당(Allocation of Resources), 메모리 관리(Management of memory), 보안의 기능을 갖고 있습니다. 과거 Disk Operating System(DOS)은 보안의 기능이 없어 현대적 의미의 운영체제라고 하기 어려운 모양입니다.

Process

https://www.youtube.com/watch?v=OrM7nZcxXZU&list=PLBlnK6fEyqRiVhbXDGLXDk_OQAeuVcp2O&index=16

프로그램 실행 시 장기저장장치에 저장되어 있던 프로그램은 실행으로 옮겨지면서 프로세스가 됩니다. 다음 표현을 참고하면 좋습니다.

Process: A process can be thought of as a program in execution.

프로세스가 되면서 개별 프로세스에 하나의 스레드가 존재합니다. 스레드는 프로세스 내 실행의 단위라고 합니다. 다음 표현을 참고하면 좋습니다.

Thread: A thread is the unit of execution within a process. A process can have anywhere from just one thread to many threads.

또한, 스레드는 실행되고 있는 코드의 단위라고 표현할 수도 있습니다.

반드시 프로세스의 스레드가 한 개인 것은 아닙니다. 여러 개의 스레드를 가질 수 있습니다. 브라우저 중 크롬은 여러 개의 프로세스를 생성합니다. 탭마다 프로세스가 생성되는 것입니다. 반면에 IE는 하나의 프로세스를 생성합니다.

Process Scheduling

https://www.youtube.com/watch?v=2h3eWaPx8SA&list=PLBlnK6fEyqRiVhbXDGLXDk_OQAeuVcp2O&index=19

멀티프로그래밍의 목적은 동시에 몇 가지 프로세스를 동작하도록 하는 것이며, CPU 활용을 최대화하려는 것입니다.

Time sharing의 목적은 CPU를 여러 프로세스에 높은 빈도로 바꿔주는 것이며, 이를 통해 사용자는 동시에 동작되고 있는 프로그램과 상호작용할 수 있습니다.

위 두 가지를 충족시키기 위해 프로세스 스케줄러는 CPU의 프로그램 수행을 위해 사용 가능한 프로세스를 선택합니다.

Context Switching

https://www.youtube.com/watch?v=vTgccrbYHYs&list=PLBlnK6fEyqRiVhbXDGLXDk_OQAeuVcp2O&index=20

Switching the CPU to another process requires performing a state save of the current process and a state restore of a different process.

CPU가 다른 프로세스를 수행하도록 바뀔 때, 기존에 수행하고 있었던 프로세스의 상태를 저장하고 다른 프로세스의 상태를 복구하는 것입니다. 영상의 예시가 마음에 듭니다. 책을 읽고 있다고 가정하고 40페이지까지 읽었다고 가정하겠습니다. 이때 어머니가 다른 프로세스를 요청했다면 하던 것을 멈추고 그 프로세스를 도우러 가야 합니다. 40페이지까지 읽은 책에 책갈피를 남겨 현재까지 수행한 내용을 저장합니다. 어머니를 돕고 돌아온 뒤 저장되어 있었던 내용, 즉 책을 40페이지까지 읽은 것이 책갈피를 통해 저장되어 있으니 이를 복구시키고 그 이후부터 읽어나가면 됩니다.

0개의 댓글