분류 전체보기110 운영체제 프로세스의 상태 프로세스란? 우리의 프로그램들은 평소에 보조기억장치(HDD, SSD..)에 저장되어있다. 프로그램들을 사용하기 위해서는 메모리에 올려야 하는데 프로그램들이 메모리에 올라가 있으면 프로세스라고 한다. 하나의 응용 프로그램은 여러개의 프로세스로 이루어질 수도 있다. 프로세스의 상태 프로세스의 상태는 아래와 같이 5가지로 나누어질 수 있다. - new (프로세스가 생성) - exit (프로세스가 종료) - ready (프로세스가 CPU에 의해 실행되기전 대기상태) - running (프로세스가 CPU에 의해 실행되고 있는 상태) - block ( 특정 이벤트가 발생하여 대기상태) 이 5개 중 ready, running, block에 대해 조금 더 자세히 알아보자. 현재 어떤 프로세스가 cpu에 의해 실행되고 .. 2020. 11. 21. 운영체제 라운드로빈 스케쥴러 라운드로빈 기법이란 FIFO(First In First Out)형태에 시분할 시스템을 추가한 것으로 보면되는데 위와 같이 app1,2,3가 각각 완료하는데 2초, 3초, 2초가 걸리고 순서는 app1 -> app2 -> app3라고 가정하고 한번에 1초만큼씩 처리를 한다고 가정하면 1초가 지난 후에는 아래그림과 같아진다. 작업 완료까지 2초가 걸리는 app1을 1초만큼 작업한 후에 제일 뒤로 보내고 app1이 뒤로감에 따라 이제 제일 앞에 있는 app2를 작업할 차례가 되는 것이다. 이런식으로 계속 반복해나가는게 라운드로빈 방식이다. 2020. 11. 20. 운영체제 멀티프로그래밍, 멀티프로세싱, 멀티태스킹이란? 이번 글에서는 햇갈릴만한 용어를 정리해보려고 한다. 멀티 태스킹이란? 우선 시간을 좀 거슬러 올라가보면 예전에는 배치처리시스템이란 방식으로 컴퓨터를 사용했다. 배치처리시스템이란 일종의 큐 같은 구조로 프로그램을 사용하는 것인데 먼저 들어온 프로그램부터 다 처리를 하고 그 다음 프로그램을 처리하는 형태이다. 아래 그림을 보자. 위와 같이 application1과 2가 있을 때 각각 1시간, 30분씩 걸린다고 하면 application2를 실행하기 위해서는 1시간을 기다린 후에나 실행할 수 있었다. 이걸 보완하기 위해 나온게 멀티태스킹인데 아래 그림을 참고하자. 멀티태스킹이란 단일 CPU를 기준으로 위처럼 여러 프로그램을 번갈아가면서 실행하는 것이다. 각 프로그램을 ms단위로 실행하게 되면(1초보다 낮은 단.. 2020. 11. 19. 운영체제 커널모드란? 우리가 컴퓨터를 사용할 때 사용자는 못느끼지만 내부적으로는 두가지 상태로 나뉘게 된다. User Mode와 Kernel Mode이다. 저번 포스팅에서 사용자가 하드웨어 자원에 직접 접근하면 여러 실수들이 발생할 수 있기 때문에 운영체제는 시스템콜을 통하여 각 기능에 맞는 함수를 제공해서 통신한다고 했었는데 커널모드를 실행하려면 반드시 시스템콜을 거쳐야 한다. 즉, Application이 운영체제가 필요한 API를 호출하면 시스테콜이 호출되고 커널모드로 진입하게 된다. 커널모드로 진입한 후에 운영체제 내부에서 명령을 실행하게 된다. 예를 들면, C언어에 open함수가 있다. 이 함수는 파일을 읽는 함수인데 파일을 읽기 위해서는 하드웨어에 접근해서 파일을 가져와야 하지 않겠는가? 고로 이때 시스템콜이 발생하.. 2020. 11. 17. 이전 1 ··· 21 22 23 24 25 26 27 28 다음