운영체제
-
[운영체제] 프로세스개발/OS 2022. 4. 11. 00:30
프로세스 실행중인 상태의 프로그램을 프로세스라 한다. 프로세스는 각각 독립된 주소공간을 할당받으며 각 메모리는 정해진 영역을 가지고 있다. 코드 - 코드 자체를 구성하는 영역 데이터 - 전역 변수, 정적 변수, 배열 등을 저장하는 영역 스택: 지역변수, 매개변수, 리턴값을 저장하는 영역 힙: malloc이나 new와 같이 메모리를 동적 할당 시 사용되는 영역 스택과 힙은 같은 공간을 공유하며, 서로의 공간을 침범할 경우 오버플로우가 일어난다. 프로세스의 상태 프로세스는 실행되는 동안 상태가 바뀐다. 멀티 프로세스 하나의 컴퓨터에 여러 CPU를 장착해 여러 프로세스가 하나의 프로그램을 병렬적으로 처리할 수 있다. 이 경우 몇몇 프로세스가 오작동해도 프로그램을 정상 동작할 수 있으므로 안정성이 확보된다. 프..
-
[운영체제] OS의 구조(2)개발/OS 2022. 2. 21. 01:55
이번에는 지난번에 적은 OS의 구조에서 더 나아가서 각 OS들이 어떤 구조를 갖고있는지 알아보자 OS의 구현 당연하게도 OS도 언어로 만들어진다. 초기에는 어셈블리와 같은 언어로 만들었다. 그 이후엔 Algol, PL/1 과 같은 언어로 만들어졌다고 한다. 현재는 여러가지 언어를 황룔해서 만드는데, Lowest level은 C를 메인으로 하고, C++, PERL, Python 과 같은 언어들을 사용해 시스템 프로그래밍을 한다. 하이레벨 언어들은 다른 기기로의 전환이 쉬우나 느리다는 단점이 있다. Emulation은 non-native 기기에서 작동할 수 있다. Kernel 커널은 하드웨어인터페이스와 시스템 콜 인터페이스 사이에 위치하며 기능들을 제공한다. 하드웨어 자원을 적절하게 분배해주며, 시스템콜, ..
-
[운영체제] OS의 구조개발/OS 2022. 2. 18. 02:06
OS의 구조 이번에는 OS의 구조에 대해서 알아보자 지난 글에서 본 OS의 기능들을 보면 결국 OS는 사용자가 프로그램을 실행할때 적절한 환경을 제공해주는 것이다. 따라서 일반적인 OS들(Windows, Mac, Android 등)은 사용자가 더 쉽고 편한 환경에서 기기를 사용하도록 인터페이스를 제공한다. 이를 User Interface(UI)라 한다. UI에는 CLI, GUI, touch-screen등이 있다. Command Line Interface, CLI 명령어를 통해 프로그램을 실행하고 조작한다. 파일을 만들거나, 이동하거나.. 등등을 모두 명령어로 조작할 수 있다. Windows에는 cmd나 Powershell이 있고 Linux나 Mac에서는 Terminal이 대표적인 예라고 볼 수 있다. G..
-
[운영체제] 운영체제란?개발/OS 2022. 2. 17. 01:54
운영체제 운영체제란 일종의 소프트웨어로 어플리케이션 소프트웨어와 하드웨어 자원을 연결해주는 인터페이스 역할을 한다. 자원을 추상화하여 관리하고 동작시킨다. ->Resource manager 자원에는 CPU, Memory와 같은 물리적 자원일 수도 있고, process나 address space와 같은 virtual자원일 수도 있다. 물리적 자원들은 어플리케이션 SW가 사용하기 쉽도록 추상화 하여 가상의 자원으로 바꿔주고, 이러한 자원들을 다중화(Multiplexing)해서 여러 프로세스들이 사용할 수 있도록 공유한다. 또한 여러 프로세스들이 동시에 사용할 수 있도록 스케쥴링 기능도 제공한다. 프로세스 관리 프로세스란 쉽게 말해서 실행된 프로그램이다. 프로세스는 작업을 수행하기 위해서 CPU, memory..