# Operating Systems

19개의 포스트

[운영체제] 6. Process Synchronization

데이터 접근Execution-Box: CPU, 컴퓨터내부, processStorage-Box: Memory, Disk, process 주소 공간공유 데이터(shared data)의 동시 접근(concurrent access)은 데이터의 불일치 문제(inconsisten

2022년 4월 23일
·
0개의 댓글
·

[운영체제] 5. CPU Scheduling

CPU & I/O Bursts in Program Execution: CPU burst(load store, add store, read...) -> I/O burst(wait for I/O) -> CPU burst(store increment, index, write

2022년 4월 22일
·
0개의 댓글
·

[운영체제] 4. Process Management

: 부모 프로세스가 자식 프로세스 생성 (fork) \- 트리(계층 구조) 형성 \- 프로세스는 자원을 필요로 함: 운영체제로부터 받는다 / 부모와 공유한다 \- 자원의 공유: 부모와 자식이 모든 자원 공유하는 모델 / 일부 공유 모델 / 전혀 공유하지 않는 모델(일

2022년 4월 22일
·
0개의 댓글
·

[운영체제] 3. Process

counter.c (프로그래밍) ---(컴파일)---> counter (기계어코드) ---(실행)---> process \- CPU의 수행 상태를 나타내는 하드웨어 문맥. 특정 시점에서 어디까지 수행했는지. ( program counter: 프로그램 중 몇번째 li

2022년 4월 22일
·
0개의 댓글
·

[운영체제] 2. System Structure & Program Execution

: 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 하드웨어적 보호 장치.1 (사용자 모드): 사용자 프로그램 수행. 제한된 접근. 일반 명령. 0 (모니터/커널/시스템 모드): OS 코드 수행. 메모리 접근, I/O dev

2022년 4월 22일
·
0개의 댓글
·

[운영체제] 1. Introduction to OS

협의의 운영체제(커널): 운영체제 핵심. 메모리에 상주광의의 운영체제: 커널 + 주변 시스템 유틸리티. 메모리에 상주하지는 x동시 사용자 / 프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상 제공하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행프로세서, 기

2022년 4월 22일
·
0개의 댓글
·
post-thumbnail

[Book] 운영체제: 아주 쉬운 세 가지 이야기

다시보니 참 그립고 정겹게 생긴 표지라는 느낌을 받는다. 향수에 젖는다.책 이름: 운영체제: 아주 쉬운 세 가지 이야기저자: Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau옮김: 원유집, 박민규, 이성진운영체제 공부 내용만 따로

2022년 2월 15일
·
0개의 댓글
·

[Operating Systems] Deadlock Detection

Cyclic Deadlock Monitoring Algorithm런타임에 프로세스가 lock을 획득하고 해제하는 행동을 관찰한다.Lock Graph(N, E) (Directed Graph)스레드가 lock X를 획득하면 노드 Nx를 생성한다.스레드가 lock X를 획득

2020년 9월 24일
·
2개의 댓글
·

[Operating Systems] Deadlock & Starvation

두 개 이상의 프로세스들이 결코 일어나지 않을 사건을 위해 기다리는 상태를 교착 상태(deadlock)이라고 한다. 예를 들어, 프로세스 P1이 자원 A를 가지고 자원 B를 기다리며 프로세스 P2는 자원 B를 가지고 자원 A를 기다리는 경우가 있을 수 있다.교착 상태가

2020년 9월 24일
·
0개의 댓글
·

[Operating Systems] Synchronization

병렬성(parallelism) 과 병행성(concurrency)의 개념을 헷갈려하는 사람들이 꽤 있다. 병렬성은 멀티코어 프로세서에서 각 코어에 하나의 작업을 실행시켜 특정 시간에 두 개 이상의 작업이 실행되고 있는 것을 말한다. 반면 병행성은 싱글코어를 기준으로 여러

2020년 9월 24일
·
0개의 댓글
·

[Operating Systems] Virtual Memory 2

Frame Allocations 각 프로세스에게 얼마나 많은 프레임을 할당할 것인지, 어떤 프레임을 대치할 것인지 결정한다. Fixed Allocation Priority Allocation Global Allocation Local Allocation Thrash

2020년 9월 23일
·
0개의 댓글
·

[Operating Systems] Virtual Memory 1

Background 프로그램 전체를 메모리에 올린다고 하더라도 대부분의 프로세스는 할당된 메모리의 일부분만 사용한다. 에러 핸들링 코드나 잘 사용하지 않는 루틴들도 프로그램에 포함되어 있기 때문이다. 그렇기에 사용되는 일부분만 메모리에 올리고 남은 메모리를 다른 프로그

2020년 9월 23일
·
0개의 댓글
·

[Operating Systems] Memory Management 3

Paging Issues 이전 글에서 다루었던 페이징의 개념에 이어 페이징과 관련된 이슈를 살펴보자. Frame Size 페이징의 문제점은 internal fragmentation이 생긴다는 것이다. 그럼 internal fragmentation 문제를 최소화하려면

2020년 9월 22일
·
0개의 댓글
·

[Operating Systems] Memory Management 2

Memory Allocation 컴퓨터 부팅 직후에 메인 메모리는 OS를 제외하고 큰 구멍이 생긴 것처럼 보인다. 다중 프로그래밍에서는 다수의 프로그램들이 메모리에 적재되어 프로세스의 생성과 종료를 반복한다. 그렇기 때문에 한정된 메모리 공간을 여러 프로세스에게 효율적

2020년 9월 22일
·
0개의 댓글
·

[Operating Systems] Memory Management 1

OS는 사용자에게 메모리에 대한 추상화를 제공할 뿐만 아니라 메모리 관리(memory management)를 통해 한정된 메모리 자원을 효율적으로 사용하고 메모리를 보호한다. 또한 메모리 관리는 각 프로세스들에 할당된 메모리 정보와 비어있는 메모리 공간에 대한 정보를

2020년 8월 20일
·
0개의 댓글
·

[Operating Systems] Process & Thread

프로세스란 실행 중인 프로그램을 의미한다. 프로세스는 PC와 레지스터를 포함한 현재 상태, 텍스트(=프로그램 코드), 스택(=임시 데이터), 데이터(=전역 변수), 힙으로 이루어져 있다.위 그림은 프로세스의 상태 변화를 나타낸 그림으로 총 5가지 상태로 나눌 수 있다.

2020년 8월 20일
·
0개의 댓글
·

[Operating Systems] Interrupt & System Call

일반적으로 인터럽트(interrupt)는 하드웨어가 어떠한 이벤트를 CPU에게 알리기 위해서 사용하는 방법이다. 하지만 실행 중인 프로세스가 CPU 내의 인터럽트 라인을 세팅하여 인터럽트를 걸기도 한다. 전자를 비동기식 인터럽트(asynchronous interrupt

2020년 8월 20일
·
0개의 댓글
·

[Operating Systems] Introduction

컴퓨터에 OS가 없다면 어떤 일이 일어날까. 이 글에서는 컴퓨터가 프로그램을 실행하기까지 어떠한 과정을 거치는지, OS는 무엇이고 어떤 역할을 하는지에 대한 내용을 다루어보았다.위 그림은 하나의 프로그램이 컴퓨터에서 어떻게 실행되는지 하드웨어적인 측면에서 그림을 그린

2020년 8월 20일
·
0개의 댓글
·
post-thumbnail

운영체제란 무엇인가

컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층협의의 운영체제(커널)운영체제의 핵심 부분으로 (부팅 이후에 계속) 메모리에 상주하는 부분광의의 운영체제커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념예를들

2020년 7월 22일
·
0개의 댓글
·