CS/운영체제 7

가상 메모리

1. 가상 메모리(virtaul memory) 1.1. 가상 메모리 배경 이 전에 메모리 관리 기법에 대해서 배웠다. 자세히 알고 싶다면 아래 링크 클릭! https://daily-studygo.tistory.com/35 메모리 관리 기법 CPU는 그저 '메모리'에 올라와 있는 프로그램의 명령어들을 실행할 뿐이다. 메모리는 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치를 말하며 메모리 계층은 레지스터, 캐시, 주기억장 daily-studygo.tistory.com 이러한 기법들은 모두 다중 프로그래밍(multi programming)을 실현하기 위해 메모리에 많은 프로세스들을 동시에 유지하는 것이 목적이다. 그리고 이 기법들은 프로세스 전체가 실행되기 전에 메모리로 올라와야 한다는 것을 전제로 ..

CS/운영체제 2022.11.16

CPU스케줄러와 CPU 스케줄링

프로세스 상태 CPU 스케줄러&스케줄링을 이해하기 위해 프로세스 상태에 대해 알아보자. 프로세스 상태는 new, ready, running, waiting, terminated 등이 있다. 이외에도 suspended ready, suspended Waiting이 있다. 프로세스 상태 상태 정의 추가 설명 new 프로세스가 막 생성된 상태 fork() 또는 exec() 함수를 통해 생성, 이 때 PCB가 할당된다. ready 프로세스가 CPU에 실행되기 위해 대기하는 상태 메모리 공간이 충분하면 메모리를 할당받고 아니면 아닌 상태로 대기하고 있으며 CPU 스케줄러로부터 CPU 소유권이 넘어오기를 기다린다. running CPU 소유권과 메모리를 할당받고 인스트럭션을 수행 중인 상태 CPU burst가 일어..

CS/운영체제 2022.11.10

메모리 관리 기법

CPU는 그저 '메모리'에 올라와 있는 프로그램의 명령어들을 실행할 뿐이다. 메모리는 전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치를 말하며 메모리 계층은 레지스터, 캐시, 주기억장치(메인 메모리), 보조기억장치로 구성되어 있다. 이 중 메인 메모리(main memory)에 대해 알아보자. 1. 메인 메모리(main memory) 보통 RAM(Random Access Memory, main memory)을 일컬어 메모리라고 한다. CPU는 계산을 담당하고, 메모리는 기억을 담당한다. 메인 메모리는 CPU가 직접 접근할 수 있는 기억 장치이다. 메모리의 주소는 주소가 할당된 일련의 바이트들로 구성되어 있다. 비트 단위로 데이터를 관리하면 명령이 너무 세분화되어 불편할 수 있기 때문에 바이트 단위를..

CS/운영체제 2022.11.08

동기화

https://daily-studygo.tistory.com/12 프로세스와 스레드 프로그램과 프로세스 프로그램은 특정 작업을 실행할 수 있는 명령어 모음으로 디스크에 저장된 파일이다. 프로세스는 디스크로부터 메모리에 적재되어 실행되고 있는 프로그램으로 CPU의 할당 daily-studygo.tistory.com 이전에 위의 블로그에서 멀티 스레딩의 경우 스레드가 공유 자원에 동시에 접근했을 때 결과가 달라져 문제가 발생할 수 있다고 했다. 문제가 발생하지 않게 멀티스레드 환경에서 여러 스레드가 동시에 공유 자원에 접근할 때, 의도한 대로 동작(Thread-Safe)하게 해줘야 한다. Thead-Safe가 가능하게 하는 동기화 기법에 대해 알아보자. 동기화를 설명하기 위해 알아야 할 개념에 대해 짚고 넘..

CS/운영체제 2022.10.25

데드락

https://daily-studygo.tistory.com/18 동기화 https://daily-studygo.tistory.com/12 프로세스와 스레드 프로그램과 프로세스 프로그램은 특정 작업을 실행할 수 있는 명령어 모음으로 디스크에 저장된 파일이다. 프로세스는 디스크로부터 메모리에 daily-studygo.tistory.com 데드락(DeadLock, 교착 상태) 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 무한히 다음 자원을 기다리게 되는 상태를 말한다. 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. (마치, 외나무 다리의 양 끝에서 서로가 비켜주기를 기다리고만 있는 것과 같다.) 데드락이 일어나는 경우 프로세스1과 2가 자원1..

CS/운영체제 2022.10.25

프로세스와 스레드

프로그램과 프로세스 프로그램은 특정 작업을 실행할 수 있는 명령어 모음으로 디스크에 저장된 파일이다. 프로세스는 디스크로부터 메모리에 적재되어 실행되고 있는 프로그램으로 CPU의 할당을 받는 작업(CPU의 스케줄링의 대상이 되는 작업)이다. 운영체제로부터 시스템 자원(CPU 시간, 주소 공간 등)을 할당 받는다. 프로그램은 프로세스로부터 인스턴스화된 것이다. 예를 들면 프로그램은 구글 크롬 프로그램(chrome.exe)과 같은 실행 파일이며, 이를 두 번 클릭하면 구글 크롬 '프로세스'가 시작된다. 동일한 프로그램을 실행한다고 해서 같은 프로세스라고 할 수 없다. (ex. 복사본) 둘의 코드 영역의 내용은 같아도, 데이터/힙/스택 영역은 다를 수 있다. * 용어 정리: 인스턴스: 인스턴스는 일반적으로 실..

CS/운영체제 2022.10.17

인터럽트

들어가기 전 이해를 돕기 위한 컴퓨터 시스템 구조 인터럽트란 인터럽트는 말 그대로 “정지”이다. 즉, 어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것이다. 인터럽트가 필요한 이유 프로그램이 명령을 수행하기 위해서는 CPU를 할당 받아야 한다. 대부분의 컴퓨터는 한 개의 CPU를 사용하므로 한 순간에는 하나의 일 밖에 처리할 수 없기 때문에 어떤 일을 처리하는 도중에 우선 순위가 급한 일(ex. 입출력, 프로세스 오류 등)을 처리할 필요가 있을 때 대처할 수 있는 방안이 필요하다. 인터럽트의 종류 인터럽트의 종류는 무엇(하드웨어, 소프트웨어)과 관련된 사건인지에 따라 나뉜다. 하드웨어 인터럽트 현재 수행중인 태스크와 관련없는 주변장치에서 발생된 비동기적인 하드웨어적인 사건 비동기적(동시에 일어나지 않..

CS/운영체제 2022.10.10