본문 바로가기
반응형

반도체 그 다음 학문/운영체제 (OS)37

운영체제 Thread ( 스레드, multi thread, one to one, Many to Many, Many to One ) Thread - Thread란 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 하나의 프로그램은 하나의 thread를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 thread를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티 thread라고 한다. 멀티 thread를 생성하면 반응성, 자원 공유, 경제성, 확장성이 좋아진다. thread는 제어 흐름이다. 하나의 어플레케이션에 여러 개가 존재할 수 도 있다. 왜 멀티 thread를 할까?? 싱글 thread를 3개 만들어서 IPC통신을 해서 쓸 수도 있는데 말이다. 차이점은 멀티 thread는 기존의 소스를 그대로 이용하여 만드는데 프로세스를 모든 걸 새로 생성해야 하니 더 비용이 크다. 이렇게 멀티 thread는 병렬적으로 task들이 .. 2022. 4. 13.
운영체제 상태 용어, PCB ( Process State, 운영체제 상태, Process Control Block, 프로세서 흐름 ) Process State - 용어 정리부터 하면, New = 프로세스가 생성된 상태다. Running = 명령어가 실행되는 상태로 실제 하나하나 구현되고 있는 상태다. Wating = 코드가 수행되고 있진 않으나, 메모리상에 존재하며 외부 이벤트가 생길 때까지 기다리는 상태다. Ready = 실행되기 전에 cpu에서 할당받기 위해 기다리는 상태뿐만 아니라 대기하고 있는 상태를 말한다. Terminated = 종료된 상태다. Process Control Block (PCB) - 운영체제가 프로세스를 관리하기 위한 정보를 모아놓은 구조를 PCB라고 한다. 2022. 4. 13.
운영체제 System Services ( 운영체제 구조, Momolithic Structure, layered approache, Micro kernel, Module Structure ) System Services - System Services를 구현하는데 생각해야 할 부분이 2가지가 있다. 첫 번째, policy = 어떤 일들을 수행해야 하는가? 즉, 목표, 예를 들면 100초마다 인터럽트가 생겨야 한다. 두 번째, mechanism = 어떤 게 policy를 디자인할 수 있을까? 구현 예를 들면 타이머 이런 걸 고민하여 System Services를 구현하는 구조를 알아보자. 1. Momolithic Structure - 여러 기능의 kernel 파일이 하나의 static binary로 저장돼 있는 구조이다. 단점은 디버깅하기 어렵다. 코드 중복이 심하다. 즉 계층적인 구조가 아니었다. 이에 계층 구조적 접근을 하게 됐다. 2. layered approache - layered a.. 2022. 4. 13.
운영체제 System call ( 시스템 콜 ) System call - 간단히 말해서 programming interface를 위해 os가 제공하는 서비스다. 사용자가 kernel level로 바로 접근하면 여러 문제가 발생할 수 있으니 하나의 안전장치라고 생각하면 된다. 즉, kernel에 접근하기 위해 필요한 기능으로 kernel이 제공하는 기능 중에 사용자가 사용할 수 있는 기능을 모아놓은 것이다. 조금 더 쉽게 말하면 언어로 비유했을 때 라이브러리 혹은 함수이다. 추가적으로, 대부분의 운영체제는 kernel mode와 user mode가 구분돼 있다. 이런 상황에서 시스템 콜은 user mode에서 kermel mode로 들어가는 것이다. 이런 시스템 콜을 이용하기 위해 대부분 API를 사용한다. API를 쓰는 이유는 이식성 때문이다. 사용하.. 2022. 4. 13.
운영체제 관리 ( Process Management, Memory Management, File-system Management ) Process Management - Program과 Process의 차이점부터 알아야 한다. Program이란, 실행파일이다. 파일 시스템에 존재하는 실행파일이 프로그램이다. Process란, 프로그램을 실행시키는 실행 주체이다. 즉, 프로그램을 동작하는 주체다. 동작하기 위해 cpu를 차지하고 동작한다. OS에선 프로세서 하나하나를 Process ID라고 명명했다. 또한 동작하기 위해선 cpu, memory, I/O, files, 초기화 데이터 등이 필요하다. 추가로 재사용 가능한 자원에 대해선 회수하기도 한다. Memory Management - 실행 프로그램의 명령어들은 메모리에 존재한다. 그렇기 때문에 메모리는 이런 명령어들과 정보를 관리해야 한다. 현재 메모리의 어디 부분이 어떤 프로그램에 의.. 2022. 4. 5.