전자전기공학/운영체제 11

[Operating System/운영체제][Working set page replacement algorithm, WSClock page replacement algorithm]

지난 시간에 이어서 마지막인 Working set page replacement algorithm과WSClock page replacement algorithm에 대해서 알아보도록 하겠습니다.       The Working Set Page Replacement Algorithm     Working Set Page Replacement Algorithm은 Locality 개념을 기반으로 한 페이지 교체 알고리즘입니다. 프로세스가 실행되는 동안 자주 사용되는 페이지 집합을 유지하여 page fault를 줄이는 것을 목표로 합니다.간단히 말해, 프로세스가 일정 시간 동안 활성 상태로 유지하는 페이지들의 집합을 Working Set이라고 합니다.  working set의 정의는 $\text{W(k , t)}..

[Operating System/운영체제][Inverted page table, Page replacement algorithm]

Inverted page table       지난 시간에 multilevel page table에 대해서 배워봤습니다.multilevel page table을 사용해도 되는데 Inverted page table은 왜 사용할까요?  Inverted page table은 모든 프로세스가 공유하는 단일 테이블을 사용하고 이 방식으로 인해서프로세스별로 개별적인 페이지 테이블을 가지고 있는 일반적인 방법과 다르게 메모리 사용량이 크게 줄어드는 것 입니다. 쉽게 생각해보면, 일반적으로는 프로세스의 모든 가상 페이지에 대한 엔트리를 page table이 가지고 있지만,Inverted page table은 각 physical page마다 하나의 엔트리만 유지하기 때문에 메모리를 적게 사용한다는 것 입니다.      ..

[Operating System/운영체제][TLB, Multilevel page table]

지난 시간에 paging의 단점에는 두 가지가 있다고 배우고 간단한게 첫 번째 문제를 해결하기 위한 방법으로TLB에 대해서 간략하게 소개하고 난 이후에 글을 끝냈습니다. 지난 내용을 잠시 떠올리자면, 첫 번째로 paging기법에서 main memory로 정보를 가져가기 위한 cost가 많이 든다는 것이고,두 번째로 page table이 너무 큰 용량을 차지하기 때문에 문제가 발생할 수 있다는 단점이 존재했습니다.  이제 해당 단점을 개선하기 위한 방법들을 이야기 할 건데, 지난 시간에 TLB에 대해서 간략하게만 이야기 했기 때문에자세하게 살펴보고 난 이후에 두 번째 문제점의 개선 방법을 알아보고 글을 마치도록 하겠습니다.        TLB(Table Lookaside Buffer)         TLB..

[Operating System/운영체제][Memory관리,Virtual memory, Paging]

Virtual memory는 Base and Limit Register를 사용할 때 발생하는 문제는 Program이 Main memory보다 크게 된다면프로그램을 돌릴 수 없다는 문제가 발생하게 됩니다.  이는 Base and Limit Register를 돌리려면 전체가 다 올라와야 한다는 것 때문입니다.그래서 이 문제를 해결해주기 위해서 Overlay방법과 Paging방법이 있습니다.  Overlay방법은 OS가 하는게 아니라 프로그래밍을 할 때, 프로그램을 로딩할 때 A만 로딩을하고 난 이후에 A프로그램이전부 실행되고 나면 프로그램 B가 프로그램 A의 영역을 적재하는 방식으로 프로그래밍을 해줘야 합니다.  쉽게 말해서, 프로그램P가 있을 때 P의 Overlay section(A, B, C)으로 나뉘어..

[Operating System/운영체제][memory관리, Bit Map, Linked List, Fragmentation]

지난 포스팅에 이어서 그 이후의 내용을 정리하려고 했지만, 우선 memory chapter에 대해서 다루도록 하고주말에 따로 정리해서 올리도록 하겠습니다. memory chapter는 제 '컴퓨터 구조' 카테고리를 확인해보면 간략하게 정리된 부분을 확인해볼 수 있습니다.     Mono programming이란 운영체제에서 사용하는 메모리 관리 방식 중 하나로, 한 번에 하나의 프로그램만 메모리에 적재되어실행되는 방식입니다. 메모리에 동시에 오직 하나의 프로그램만 올라와서 실행될 수 있으며다른 프로그램들은 해당 프로그램이 끝날 때까지 대기해야 합니다.  당연히 단점으로 만약에 프로그램이 작은 상태라면 메모리의 일부만 사용하게 되므로 메모리 사용 효율이 낮아지고,다른 프로그램들은 현재 실행중인 프로그램이 ..

[Operating System/운영체제][Synchronization]

· 목차  - Race Condition   - Critical Region(or Critical Section)   - Critical Section Problem Requirement   - Busy Waiting   - Spin lock   - Peterson's solution   - TSL(Test and Set Lock)   - Sleep and Wakeup   - Semaphores(PV operation)     안녕하세요, 이번에는 Synchronization에 대해서 알아보도록 하겠습니다.   Synchronization이 중요한 이유를 말하자면, 프로세스나 스레드의 Race Condition을 방지하고,데이터의 일관성을 유지하기 위해서 입니다.  그렇다면 Race Condition이 ..

[Operating System/운영체제][Thread]

· 목차 - Thread의 기본 - Kernel threads and user-level threads 안녕하세요, 이번에는 지난 시간의 Process에 이어서 Thread에 대해서 배워보도록 하겠습니다. 스레드(Thread)는 운영체제에서 프로세스 내에서 실행되는 작업의 가장 작은 단위입니다. 스레드는 프로세스의 자원을 공유하며, 다중 스레드를 통해 하나의 프로세스가 여러 작업을 동시에 처리할 수 있습니다. 스레드는 특히 병렬 처리를 통해 시스템의 성능을 향상시키는데 중요한 역할을 합니다. Thread의 기본 위에서 말한 스레드의 특징을 조금 더 자세히 살펴보자면 다음과 같습니다. 1. Lightweight Process(경량 프로세스) 스레드는 기본적으로 프로세스의 자원을 공유하여 프로세스보다 가볍고..

[Operating System/운영체제][Process]

· 목차  - 프로세스(Process)의 구조  - PID, PT, PT entry, PCB  - Process Creation  - Process Termination  - Process States  - Context Switch    안녕하세요, 이번에는 Process를 배우고 다음 시간에 Threads에 대해서 배워보도록 하겠습니다.  우선 Process에 대해서 알아보기 이전에 코어에 대해서 알아야 합니다.CPU 내부의 다이라고 불리는 블록 내부에 위치하는 코어는 CPU에 요구되는 연산을 수행하는 실제 연산 장치입니다.  여기서 프로세스는 실행 중인 프로그램으로 시스템에서 독립적인 메모리 공간을 가집니다.프로세스가 실행되면 운영 체제는 그 프로세스를 CPU 코어에 할당합니다.  스레드는 프로세스..

[Operating System/운영체제][Trap, System Call, Fault, Interrupt]

· 목차  - Interrupt  - Trap(Fault와 System Call)     안녕하세요, 이번에는 Trap(System Call, Fault)와 Interrupt에 대해서 배워보도록 하겠습니다.  우선 CPU는 User Mode(사용자 모드)와 Kernel Mode(커널 모드) 두 가지 모드를 가지고 있습니다.  사용자 모드는 프로그램이 하드웨어 자원(CPU, 메모리, I/O장치 등)에 직접 접근할 수 없고,운영체제의 도움을 받아서 간접적으로 접근할 수 있습니다.  반대로 커널모드는 운영체제의 특권모드로서 CPU가 모든 하드웨어 자원에 접근할 수 있으며,메모리, 입출력 장치, 프로세스 관리 등의 중요한 작업이 이루어집니다.  쉽게 이야기해서, 사용자 모드는 제한된 권한으로 일반 프로그램을 실..

[Operating System/운영체제][운영체제와 하드웨어]

· 목차  - 확장된 기계로서의 운영체제  - 자원 관리자로서의 운영체제  - 프로세서 또는 CPU  - 메모리    이번에는 운영체제의 역할에 대해서 조금 살펴본 이후에 운영체제와 관련된 하드웨어를 살펴보며각 하드웨어가 무엇을 하는지에 대해서 간략하게 살펴보겠습니다.     확장된 기계로서의 운영체제 - 추상화  운영체제에서 추상화는 복잡한 하드웨어나 소프트웨어의 세부 구현을 숨기고, 사용자나 다른 프로그램이 더 간단하고이해하기 쉬운 방식으로 시스템을 사용할 수 있도록 만드는 개념입니다. 운영체제에서 추상화의 목적은 무엇일까요? 추상화를 하는 이유는 시스템의 복잡성을 줄이고, 일관된 인터페이스를 제공하는 것을 목표로 합니다.사용자나 애플리케이션 프로그램이 직접 하드웨어 자원에 접근 하는 대신, 운영체제..