Computer Science/OperatingSystem

Computer Science/OperatingSystem

[OS] 컨텍스트 스위칭이란?(Context Swiching) (CS스터디)

컨텍스트 스위칭이란 무엇인지 정리를 해보자. 컨텍스트 스위칭이 무엇인가에 대해서 알아보기전에 컨테스트가 무엇인지 알고가자. 컨텍스트(Context) 란 운영체제에서 컨텍스트란 어떤 프로그램이 실행중인 일체의 상황을 말한다. 그 일체의 상황은 메모리와 CPU레지스터들에 고스란히 담겨 있는데 메모리에는 프로그램의 코드와 전역 변수 데이터, 힙(동적 할당받아 저장한 데이터), 그리고 호출된 함수들의 매개변수와 지역변수 등이 저장된 스택이 있다. 그리고 CPU의 PC레지스터에는 현재 실행 중인 코드의 메모리 주소가, 데이터 레지스터에는 이전에 실행된 결과 값이나 현재 실행에 사용될 데이터 값들이, 상태 레지스터에는 현재 CPU의 상태 정보가, SP레지스터에는 스택의 톱 주소가 저장되어 있다. 컨텍스트 스위칭이란..

Computer Science/OperatingSystem

[OS] 프로세스와 스레드는 어떤 차이점이 있나요?

이전에 프로세스와 스레드에 대하여 정리를 한 적이 있지만, 공부하기 위해서 다시 정리를 하기로 하였다. 단순 프로세스와 스레드에 대한 설명은 생략하고, 차이점에 대해서만 집중적으로 정리를 해보자면 실행 단위 프로세스는 운영체제로부터 자원을 할당받아 독립적으로 실행되는 프로그램 단위이다. 각각의 프로세스는 독립된 주소 공간, 파일, 메모리등을 가지며, 각각이 별도의 작업을 수행한다. 스레드는 프로세스 내에서 실행되는 작업단위로, 프로세스의 자원을 공유하면서 실행됩니다. 스레드는 동일한 프로세스 내에서 여러 개가 동시에 실행 될 수 있으며, 주소 공간과 자원을 공유하면서 작업을 수행합니다. 자원 공유 각각의 프로세스는 독립된 주소 공간을 가지고 있기 때문에 자원 공유가 어렵다. 프로세스 간에 자원을 공유하기..

Computer Science/OperatingSystem

[OS] 요구 페이징

요구 페이징이란? 요구 페이징(demand paging)은 운영체제에서 사용되는 가상 메모리 관리 기법중 하나이다. 요구페이징은 프로세스가 실행되는 동안 필요한 페이지만 메모리에 올리고, 필요하지 않은 페이지는 디스크에 저장하여 메모리를 절약하는 방법입니다. 이를 위해 페이지 테이블에 페이지의 위치 정보와 함께 각 페이지의 접근 여부를 표시하여 필요한 페이지만 메모리에 올리게 된다. 요구 페이징의 장점 효율적인 메모리 사용 : 요구페이징은 물리적 메모리 공간을 아끼면서 프로세스가 필요한 페이지만 메모리에 적재하므로 메모리 사용이 효율적입니다. 빠른 프로세스 실행 : 요구 페이징은 필요한 페이지만 적재하므로 디스크에서 메모리로 페이지를 로드하는 작업이 빠릅니다. 이는 프로세스 실행속도를 높이는데에 도움이 ..

Computer Science/OperatingSystem

[OS] CPU 스케줄링이란?

CPU 스케줄링이란 CPU 스케줄링은 운영체제가 CPU를 효율적으로 활용하기 위한 방법입니다. 이는 여러 프로세스들 중에서 어떤 프로세스를 먼저 실행할지, 얼마나 오랫동안 실행할지 등을 결정하는 일련의 과정을 말합니다. CPU 스케줄링은 시스템 성능을 높이고, 시스템 자원을 효율적으로 사용하여, 다양한 작업을 보다 빠르게 처리할 수 있도록 도와줍니다. CPU 스케줄링은 규모에 따라 장기, 중기, 단기 스케줄링으로 구분된다. CPU 스케줄링은 프로세스들의 우선순위와 요구사항에 따라 CPU 자원을 할당하는 방법입니다. 이러한 CPU 스케줄링 방법은 프로세스의 규모와 적용 시기에 따라 장기, 중기, 단기 스케줄링으로 구분됩니다. 장기 스케줄링: 시스템에 새로운 프로세스가 들어올 때, 어떤 프로세스를 메모리에 ..

Computer Science/OperatingSystem

[OS] 참조의 지역성과 참조 집합

참조의 지역성이란? CPU가 프로그램을 실행하는 동안 짧은 시간 범위 내에 일정 구간의 메모리 영역을 반복 참조(액세스)하는 경향이 있는데 이것이 참조의 지역성이라고 한다. 참조의 지역성 특성 참조의 지역성은 프로그램이 가지는 기본적인 실행 특성이다. 프로세스의 실행동안 메모리가 균일하게 참조되지 않고 특정 부분이 집중 참조된다. 참조의 지역성은 지역성(locality), 지역성의 원리(principle of locality)라고도 부른다. 프로세스는 최근에 참조한 데이터와 코드를 다시 참조하는 경향이 있다. 프로세스가 실행되는 동안 메모리 영역을 옮겨 다니면서 참조의 지역성이 나타난다. 경험적 관찰에서 발견한 90/10 규칙은 "프로그램 코드의 10%가 프로그램 전체 실행 시간의 90%를 소비한다"는 ..

Computer Science/OperatingSystem

[OS] 가상 메모리(Virtual Memory System) 란?

가상 메모리(Virtual Memory System) 란? 메모리가 실제 메모리보다 많아 보이게 하는 기술로, 어떤 프로세스가 실행될 때 메모리에 해당 프로세스 전체가 올라가지 않더라도 실행이 가능하다는 점에 착안하여 고안된 메모리 기법이다. 왜 가상 메모리를 사용하는가? 물리 메모리는 컴퓨터에 장착된 실제 메모리로서 최대 크기는 CPU에 의해 제한된다. 그렇다면 운영체제는 물리메모리보다 큰 프로세스를 실행시킬 수 없는 것인가? 또한 운영체제는 여러 프로세스를 합쳐 물리 메모리보다 클 때 이들을 동시에 실행 시킬 수 없는 것인가? 이에 대한 해답으로 가상메모리 기법이 등장하게되었다. 결국에 가상 메모리는 물리 메모리보다 큰 프로세스나 여러 개의 작은 프로세스를 동시에 실행시켜, 사용자나 응용프로그램에게 ..

Computer Science/OperatingSystem

[OS] 운영체제 란?

운영체제란? 사용자와 컴퓨터 하드웨어 사이에서 중계 역할을 하면서, 프로그램의 실행을 관리하고 제어하는 시스템 소프트웨어이다. 혹은 컴퓨터가 켜질 때 메모리에 적재되어 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리해주는 소프트웨어라고도 한다. OS 와 Application 사용자 프로그램(Application)은 특정 운영체제에 맞춰서 만든다. 그러므로 한 어플리케이션은 서로 다른 운영체제에서 수행할 수 없다. 예를 들면 Windows에서 수행하는 프로그램을 그대로 Linux에 옮기면 수행되지 않는다. 애플리케이션은 하드웨어 자원을 직접적으로 사용하지 않고 운영체제가 제공하는 자원만을 사용할 수 있다. 운영체제의 종류 운영체제의 종류에는 Windows 98, Windows10, UNIX, LINU..

Computer Science/OperatingSystem

[OS] DeadLock(교착상태) 란

운영체제 DEAD LOCK(교착상태) 에 대해서 알아보자 교착상태란? DEAD LOCK 즉, 교착상태란 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 즉, 무한히 다음 자원을 기다리게 되는 상태를 말한다. 쉽게 말해 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 책에서는 쉬운 예로 Dining philosophers problem( 식사하는 철학자 문제)를 예로 든다. 5명의 철학자가 원탁에 앉아서 식사를 한다. 철학자들 사이에는 포크가 하나씩 놓여 있고, 철학자들은 다음의 과정을 통해 식사를 한다. 1. 일정 시간 생각을 한다. 2. 왼쪽 포크가 사용 가능해질 때까지 대기한다. 만약 사용 가능하다면 집어든다. 3. 오른쪽 포크가 사용 가능..

Tenacity_Dev
'Computer Science/OperatingSystem' 카테고리의 글 목록