본문 바로가기

운영체제7

운영체제 멀티프로그래밍, 멀티프로세싱, 멀티태스킹이란? 이번 글에서는 햇갈릴만한 용어를 정리해보려고 한다. 멀티 태스킹이란? 우선 시간을 좀 거슬러 올라가보면 예전에는 배치처리시스템이란 방식으로 컴퓨터를 사용했다. 배치처리시스템이란 일종의 큐 같은 구조로 프로그램을 사용하는 것인데 먼저 들어온 프로그램부터 다 처리를 하고 그 다음 프로그램을 처리하는 형태이다. 아래 그림을 보자. 위와 같이 application1과 2가 있을 때 각각 1시간, 30분씩 걸린다고 하면 application2를 실행하기 위해서는 1시간을 기다린 후에나 실행할 수 있었다. 이걸 보완하기 위해 나온게 멀티태스킹인데 아래 그림을 참고하자. 멀티태스킹이란 단일 CPU를 기준으로 위처럼 여러 프로그램을 번갈아가면서 실행하는 것이다. 각 프로그램을 ms단위로 실행하게 되면(1초보다 낮은 단.. 2020. 11. 19.
운영체제 커널모드란? 우리가 컴퓨터를 사용할 때 사용자는 못느끼지만 내부적으로는 두가지 상태로 나뉘게 된다. User Mode와 Kernel Mode이다. 저번 포스팅에서 사용자가 하드웨어 자원에 직접 접근하면 여러 실수들이 발생할 수 있기 때문에 운영체제는 시스템콜을 통하여 각 기능에 맞는 함수를 제공해서 통신한다고 했었는데 커널모드를 실행하려면 반드시 시스템콜을 거쳐야 한다. 즉, Application이 운영체제가 필요한 API를 호출하면 시스테콜이 호출되고 커널모드로 진입하게 된다. 커널모드로 진입한 후에 운영체제 내부에서 명령을 실행하게 된다. 예를 들면, C언어에 open함수가 있다. 이 함수는 파일을 읽는 함수인데 파일을 읽기 위해서는 하드웨어에 접근해서 파일을 가져와야 하지 않겠는가? 고로 이때 시스템콜이 발생하.. 2020. 11. 17.
운영체제 시스템 콜이란? 앞으로 운영체제에 대해 쭉 정리해보려고 한다. 사실 저번학기 전필과목으로 운영체제를 배웠지만 당시에 이 과목이 왜 중요한지 와닿지도 않고 무엇보다 교수님의 목소리와 지루한 강의력에 공부를 안했더니 무려 D를 받았다. (후회는 없다 다시 돌아가도 그 강의를 듣고는 공부를 안할 거 같으니..) 이후 개인적인 흥미로 golang을 공부하다가 go 루틴을 이용한 멀티스레딩을 깔짝해보다가 운영체제 공부의 필요성을 느끼고 인터넷에 있는 강의를 보며 다시 공부중이다. (역시 동기부여가 있어야 공부가 잘된다.) 자 그럼 운영체제의 첫 포스팅으로 시스템 콜에 대해 알아보자. 우선 최근 컴퓨터들의 구조는 아래와 같다. 여기서 커널이란 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 .. 2020. 11. 16.