운영체제를 공부하다가 정리해 보았습니다.
차근차근 읽어보시면 전체적인 운영체제에 대해서
너무 쉽게 이해할 수 있다고 생각합니다.
운영체제
운영체제(operating system, os) 은 컴퓨터를 사용할 때 우리가 눈에 보이지 않는 곳에서 일을 처리해주는 매우 중요한 소프트웨어 입니다. 쉽게 말해, 컴퓨터의 '두뇌' 같은 역할을 합니다. 우리가 컴퓨터를 켜고 프로그램을 실행하거나 파일을 저장할 때, 이 모든 과정을
운영체제가 도와줍니다.
이렇게 말하면 음.. 운영체제가 그냥 그런 일을 하는구나 할 수 있겠지만 저는 좀 더 상세하게 들어가고 싶었습니다.
운영체제의 역할
첫번 째로 운영체제는 사용자에게 컴퓨터 시스템을 편리하게 사용할 수 있는 인터페이스를 제공합니다.
대표적으로 밑에 사진처럼 GUI, CLI 가 있습니다.
GUI 는 Chrome 브라우저 이미지, Slack 이미지 같은 것이고, CLI 는 단순한 커맨드 입니다. 이해가 되시나요??
하지만 운영체제의 가장 중요하고 핵심적인 역할은 각종 하드웨어를 관리하는 일입니다.
즉 하드웨어인 CPU, Memory, Disk 들을 잘 동작되게 하는 일종의 소프트웨어 입니다.
여기서 소프트웨어란 무엇일까요??
컴퓨터를 이용해 우리가 원하는 일을 수행할 수 있게 해주는 '보이지 않는 도구' 라고 할 수 있습니다.
즉 컴퓨터가 특정 작업을 수행할 수 있게 하는 프로그램 과 데이터를 말하기도 합니다.
밑에 그림처럼 왼쪽은 하드웨어 오른쪽은 소프트웨어라고 생각하시면 됩니다.
하드웨어와 소프트웨어의 공통된 목적은 프로그램들이 잘 구동되게 하기 위한 것이 목적입니다.
프로그램에는 뭐가 있을까요?? 수많은 명령어들(개발자 입장에서는 작동하는 코드들)이 있겠죠. 프로그램을 잘 개발한다는 것은 순차적으로 또는 어떤 기능에 맞게 조합을 하고 잘 작동하게 하는 과정입니다. 쉽게 말해 프로그래밍 과정이죠. 그러한 과정을 순차적으로 진행하면 프로그램이 만들어 집니다.
프로그램이 실행된다는것은 DISK 안에 file 이 실행 된다는 것이고, file 은 프로그램으로 만들어진 결과물이며,
사용자에 의해서 실행이 되어 졌을 때 그 파일의 일부가 메모리에 올라오고 메모리 일부의 명령어들이 CPU 에서 실행이 되는 것입니다.
근데 윈도우에 보면 수 많은 프로그램들이 동시에 실행되고 있는 것을 볼 수 있습니다. 음악을 들으면서 블로그를 쓴다든지, 게임을 하면서 음악을 들으면서 말이죠. 근데 여기서 또 짚고 넘어가야할 부분이 동시에 입니다. 동시에 실행되는 것 보다 시분할이라는 말이 맞겠죠.
프로그램들이 동시에 병렬로 실행된다는 뜻이 아니라 어떤 프로그램이 잠깐 실행되다가 멈추고 다른 프로그램이 잠깐 실행되다가 다시 멈추고 또 다른 프로그램을 실행하고... 이러한 과정이 굉장히 빠른 속도로 전환이 되기 때문에 마치 동시에 실행되는 것처럼 보이는 것이죠.
그러면 여러분들도 아시다시피 CPU 는 단지 계산만 하고 있는 하드웨어라서 이 CPU 가 어떤 일을 할지를 선택하는 것이 아니라 CPU 에게 어떤 일을 해야할 지 가져다 주는 것, 그리고 그 순서와 어떤 일을 어떻게 할 것인가, 얼만큼 그 일을 실행할 것인가 를 운영체제라는 OS 가 하게 되는 것입니다. 그래서 OS 를 설명할 때 ( 아까 이미지에서 상어가 한 말 ) 뭐 하드웨어를 관리한다, 메모리를 관리한다 라는 말이 여기서 나온 말입니다.
메모리 안에 어떤 데이터를 넣을 것인가 어떤 데이터를 뺄 것인가 이게 메모리 관리라고 하고 그 관리의 역할이 바로 운영체제가 하는 일인 것이죠.
운영체제는 결국 수 많은 프로그램들을 하드웨어들이 잘 수행하게끔 중간에서 역할을 한다 라고 이해하시면 됩니다.
'CS' 카테고리의 다른 글
Docker (1) | 2024.10.26 |
---|---|
DNS 의 기초 상식 (0) | 2024.08.19 |
Cookie vs Session vs JWT (0) | 2024.05.15 |
Virtual DOM 을 왜 쓰나요? (0) | 2024.05.11 |
Package.json, Package-lock.json (0) | 2024.05.02 |