OS 및 일반적인 지식 정리.

HyosikPark·2020년 10월 3일
0

OS(운영체제)

OS(Operating System)은 하드웨어 및 소프트웨어 자원을 효율적으로 관리하여 사용자가 편리하게 이용할 수 있도록 하는 시스템 소프트웨어이다.

쉽게 말해 하드웨어를 잘 모르더라도 아이콘을 클릭하여 프로그램을 실행하고, 프로그램을 삭제하고, 제어판의 기능을 이용하는 등 자원과 입출력, 파일 등을 관리하여 사용자가 기계언어로 소통하지 않고도 이용하기 쉬운 형태로 자원을 제공하는 것이 운영체제의 기능이다.
운영체제의 구조는 multiprogramming과 multitasking이 있다.

multiprogramming: 여러작업들이 동시에 메모리에 올라가게 되고 cpu나 I/O 장치 등 각각이 하나의 작업을 마치게 되면 다른 작업을 연이어 수행하게 되는 방식

multitasking: 멀티프로그래밍의 단점을 보완하기 위해 나온 방식으로 예를들어 하나의 작업이 cpu처리에 많은 시간이 소요될 경우 다른작업들은 cpu작업을 수행할 수 없으므로 각각의 작업에 일정한 시간을 부여하여 시간이 지날 경우 다른 작업에 시간을 할당하게 된다. 부여되는 시간이 매우 짧기 때문에 빈번한 작업이동이 일어나게 된다.

프로세스 관리

프로세스: 메인 메모리에 할당되어 실행중인 상태인 프로그램.

멀티태스킹 작업으로 할당된 시간 만큼 running하고, 다시 실행되기 위한 Ready상태를 반복하며 모든 작업이 완료되면 완전히 종료된다.

PCB란 프로세스에 대한 정보가 집약되어 있는 곳으로 register값, cpu점유 시간 등이 기록되어 있으며 멀티태스킹 작업중 중단된 시점부터 다시 실행하기 위해서 PCB에 저장된 정보를 이용한다.

process scheduling

준비상태의 프로세스 중 우선순위가 높은 프로세스에게 cpu를 할당하는 과정이다.

프로세스가 시스템에 들어오면 Job queue에 적재된다. 프로세스 상태가 준비되면 Ready Queue에 놓여지게 된다. cpu를 할당받을때까지 대기한 다음 입출력을 요청하거나, 새로운 프로세스를 생성하거나, interrupt로 인해 다시 ready queue로 돌아가게 된다.

thread(쓰레드)

프로세스 내에 위치하여 실제로 작업을 수행하는 주체이며 모든 프로세스는 한 개 이상의 쓰레드를 포함하고 있다. 두개 이상일 경우 멀티스레드 프로세스라고 한다.

0개의 댓글