# 운영체제

19개의 포스트

[운영체제] 1. OS 개요

OS? Oh Yes! 책을 바탕으로 학습한 내용입니다.사용자 인터페이스와 자원 관리를 위한 프로그램의 집합, 운영체제는 일반적으로 사용자 인터페이스(쉘)와 장치, 파일, 메모리, 처리기 관리의 다섯가지 구성요소를 가지고 있다.사용자 프로그램이 실행되면서 자신의 프로그램

약 20시간 전
·
0개의 댓글
post-thumbnail

[OS기초] 인터럽트 제대로 이해하기

주변장치와 입출력 장치는 CPU나 메모리와 달리 인터럽트라는 메커니즘을 통해 관리된다. 그래서 인터럽트, 왜 하는거요? 그 이유는 입출력 연산이 CPU 명령 수행속도보다 현저히 느리기 때문이다. 운영체제를 악덕 사장님, CPU를 비싼 월급 주고 데려온 고오급 인력이라고 생각해보자. 악덕 사장 입장에서는 비싼돈 들여온 만큼 고오급 인력이 쉬지않고 일해서 ...

2020년 1월 5일
·
0개의 댓글

운영체제 - 디스크 관리

디스크의 구조 image.png 디스크 외부에서는 디스크를 일정한 크기의 저장 공간들로 이루어진 1차원 배열처럼 취급하게 된다. 일정한 크기의 저장 공간을 논리블록이라고 하며, 디스크에 데이터가 저장될 때에는 논리 블록 단위로 저장되고, 디스크 외부로 입출력이 일언라 때에도 논리 블록 단위로 전송된다. 논리 블록에 저장된 데이터를 접근하기 위해서는 해당...

2019년 12월 6일
·
0개의 댓글

운영체제 - 가상 메모리

가상 메모리 프로그램이 CPU에서 실행되기 위해서는 실행에 당장 필요한 부분이 메모리에 올라와 있어야 한다. 프로그램이 실행되기 위해 그 프로세스의 주소 공간 전체가 메모리에 올라와 있어야 하는 것은 아니다. 당장 수행에 필요한 부분만을 메모리에 올려놓고 그렇지 않은 부분은 디스크의 스왑영역에 내려놓았다가 다시 필요해지면 메모리에 올라가 있는 부분과 교체...

2019년 12월 5일
·
0개의 댓글

운영체제 - 메모리 관리

메모리 주소 바인딩 > 프로세스가 실행되기 위해서는 프로그램이 물리적 메모리에 적재되어 있어야 한다. 또한, cpu가 기계어 명령을 수행하기 위해 논리적 주소를 통해 메모리 참조를 하게 되면 해당 논리적 주소가 물리적 메모리의 어느 위치에 매핑되는지를 확인해야 한다. 이때, 논리적 주소를 물리적 메모리 주소로 연결시켜 주는 작업을 주소 바인딩(addres...

2019년 12월 4일
·
0개의 댓글

운영체제 - CPU 스케줄링

CPU 기능 CPU는 프로그램의 기계어 명령을 실제로 수행하는 컴퓨터 내의 중앙 처리 장치. 프로그래밍 시작되어 메모리에 올라가면, 프로그램 카운터라는 이름의 레지스터가 현재 CPU에서 수행할 코드의 메모리 주소값을 가지고 있다. CPU는 프로그램 카운터가 가리키는 주소의 기계어 명령을 하나씩 수행하게 된다. CPU 버스트, I/O 버스트 CPU 버스...

2019년 12월 3일
·
0개의 댓글

운영체제 - 프로세스 관리

프로세스의 개념 프로세스란 수행중인 플그램을 뜻한다. 디스크에 실행 파일 형태로 존재하던 프로그램이 메모리에 올라가서 수행되기 시작하면 생명력을 갖는 프로세스가 된다. 프로세스 문맥(context) 프로세스의 문맥(context)는 프로세스가 현재 어떤 상태에서 수행되고 있는지를 정확히 규명하기 위해 필요한 정보를 의미한다. 시분할 시스템(time s...

2019년 12월 1일
·
0개의 댓글

운영체제 - 인터럽트의 원리

프로그램의 구조와 인터럽트 A라는 프로그램이 CPU를 할당받고 명령을 수행하고 있는데 인터럽트가 발생하면 A는 현재 수행중인 명령의 위치를 저장해 놓는다. 그 후 운영 체제 내부 코드인 인터럽트 처리 루틴으로 넘어가서 인터럽트 처리를 하고 다시 돌아와 A의 이전 작업 지점부터 수행을 계속 이어가게 된다. 이때 이전 작업 지점을 저장할 별도의 공간이 필요...

2019년 11월 30일
·
0개의 댓글

프로그램은 어떻게 실행되나?

프로그램은 어떻게 실행되나? 프로그램은 하드디스크에 존재하는 명령어집합으로서 실행 시 다음과 같은 과정을 거칩니다. 하드디스크에 적재되어 있는 프로그램이 프로세스 풀에 올라옵니다. 이때가 프로세스 실행주기 중 new에 해당됩니다. 장기 스케쥴러에 의해 프로세스 풀에 올라와 있는 프로세스 중 하나가 선택되어 ready que로 들어오게 되어 메모리가 할...

2019년 11월 17일
·
0개의 댓글

운영체제 - 가상 메모리 개념

프로세스와 메모리   모든 프로세스는 자신만의 가상 주소 공간을 가지고 있다. 모든 프로세스들은 자신만의 주소 공간을 가지기 때문에, 특정 프로세스 내에서 쓰레드가 수행될 때 해당 쓰레드는 프로세스가 소유하고 있는 메모리에 대해서만 접근이 가능하다. (다른 프로세스에 의해 소유된 메모리는 접근 불가)   즉, 가상메모리는 프로세스의 물...

2019년 11월 8일
·
0개의 댓글

운영체제 - deadlock과 starvation

교착상태(deadlocck)와 기아상태(Starvation) 교착상태란? 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에, 다음 단계로 진행하지 못하는 상태 배치 처리 시스템에서는 일어나지 않는 문제 프로세스,스레드 둘다 이와 같은 상태가 일어날 수 있음 예를 들어, 파이썬 코드상에서 쓰레드 A는 lock.acquire(...

2019년 11월 8일
·
0개의 댓글

운영체제 - Thread(스레드)

스레드(Thread) 의 개념 프로세스의 처리속도를 높이기 위해 하나의 프로세스가 수행해야 할 여러 작업들을 나누어 수행할 수 있도록 설계된 것이 스레드 1개의 프로세스를 3개의 스레드로 구성한 것은 3개의 프로세스와 같은 처리속도를 낼 수 있다. 프로세스는 자신만의 영역을 갖고 있지만, 스레드는 그렇지 않다. 한 프로세스에 존재하는 모든...

2019년 11월 4일
·
0개의 댓글

운영체제 - 프로세스 총정리 및 프로그램 성능 개선

프로세스 총정리 image.png 위와 같은 코드를 작성했다. 가장 먼저 하는일은 해당 코드를 컴파일 하는 행위이다. 컴파일을 하게 되면 실행파일이 생성된다. 실행파일을 실행하려면 일반 사용자는 어떻게 해야 할까? 일반 사용자는 실행프로그램을 사용하기 위해 쉘 인터페이스를 사용하게 된다(마우스,커맨드...등을 이용해서 운영체제에게 파일 실행을 요청한다....

2019년 11월 4일
·
0개의 댓글

운영체제 - IPC 기법

다양한 IPC 기법 file 사용 message queue shared memory pipe signal semaphore socket pipe 기법 pipe란 하나의 프로세스에 의해 출려도니 데이터의 값을 다른 프로세스의 입력으로 전달되도록 하는 방법 2개의 프로세스간 하나의 pipe만 연결되어 있다면, 단방향 통신만 가능하다. 1대1의 의사소통만 ...

2019년 11월 3일
·
0개의 댓글

운영체제 - 인터럽트

인터럽트란? cpu가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생하여 처리가 필요할 경우 cpu에게 알려서 처리하는 기술 컴퓨터에 설정된 장치에서 프로세서로 보내는 하드웨어 신호로, 실행 중인 프로그램 수행을 미루도 다른 프로그램의 수행을 요구하는 명령이다. > 어느 한순간 cpu가 실행하는 명령은 하나이다. 다른 장치와는 ...

2019년 10월 17일
·
0개의 댓글

[운영체제] 프로세스

프로세스란 프로그램은 명령어 리스트를 가진 디스크에 저장된 파일로 passive entitiy이다. 이러한 프로그램이 메인 메모리에 올라오게 되어 자원을 할당받은 상태를 프로세스 라고한다. 프로세스에 대한 정보는 PCB(Proccess Control Block)와 메인메모리에 저장된다. 프로세스 구조 프로세스는 stack, heap, code, data ...

2019년 9월 28일
·
0개의 댓글

운영체제 - 프로세스 상태와 스케쥴러

멀티 프로그래밍과 Wait image.png 각각의 프로세스들이 처음부터 끝까지 쭉 실행을 한다고 가정할 경우, 각각의 프로세스는 어떻게 실행이 되는지를 보여주는 그림이다. 예를들어, Process A의 경우 먼저 cpu에서 실행이 된다.(Run 상태) 그리고, 특정 시점이 되면 저장매체 혹은 시스템 자원을 사용하기 위해서 System Call과 ...

2019년 9월 28일
·
0개의 댓글

운영체제 - 스케쥴링 알고리즘 기본

프로세스란 ? 실행중인 프로그램은 프로세스라고 한다. 메모리에 올려져서, 실행 중인 프로그램 모든 코드는 메모리에 올려진 후 한줄 씩 cpu에서 실행되는 구조이다. 코드이미지(바이너리) : 실행 파일, ex) ELF format > 프로세스라는 용어는 작업,task,job이라는 용어화 혼용된다. ※ 응용프로그램은 프로세스가...

2019년 9월 28일
·
0개의 댓글

운영체제 - 멀티 프로그래밍

멀티 프로그래밍 목적 최대한 cpu를 많이 활용하도록 하는 시스템 시간 대비 cpu 활용도를 높이자. 짧은 시간안에 프로그램 실행 완료 응용 프로그램은 온전히 cpu를 쓰기 보다, 다른 작업을 중간에 필요로 하는 경우가 많다.(cpu가 놀고있는 상황 발생) 응용 프로그램이 실행되다가 파일을 읽는다. 응용 프로그램이 실행되가가 프린트 한다. ...

2019년 9월 26일
·
0개의 댓글