본문 바로가기
반응형

일단 제가 준비한 건,261

운영체제 Amdahl's law ( 암달 법칙 ) Amdahl's law (암달 법칙) - 멀티 코어에서 실제 프로그램이 어느 정도 빨라질까? HW에서 특정 부분을 향상했을 때 (core를 늘렸을 때), 프로그램이 얼마나 더 빨리 동작할까를 예측하는 법칙이다. S는 serial portion이다. 즉, 해당 부분의 하나의 전체 실행 프로그램이다 N은 내가 추가하려는 core의 개수다. 조금 다르게 말해서 내가 S에 해당하는 부분을 N배만큼 좋게 했을 때, 성능을 비교하는 것이다. 예를 들어 75%가 parallel, 25%가 serial로 동작하는 프로그램인데 원래 core가 1개였다가 2개로 늘어났다면 얼마나 시간이 빨리 질까? 했을 땐 1.6배가 향상된다. 왜냐면 serial에 해당하는 부분인 25%을 2배로 늘렸을 때를 생각하는 것이다. 즉 S =.. 2022. 4. 13.
운영체제 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.