[OS]커널&시스템 콜이란?
·
CS/OS
OS란?컴퓨터의 자원들을 효율적으로 관리하며 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록환경을 제공하는 여러 프로그램의 모음으로 사용자와 하드웨어 간의 인터페이스로 동작하며유용한 작업들을 제공한다. OS의 구조사용자는 파일 입출력, 네트워크 연결 등 기기를 통해 다양한 작업을 수행하게 되는데사용자가 하드웨어(모니터, 마우스)를 직접 연동해서 사용하는게 아니라응용 프로그램을 통해서 작업을 수행하게 된다.간단한 작업의 경우 라이브러리나 유틸리티를 통해 처리가 가능하지만커널의 서비스나 하드웨어의 작업이 필요한 경우, 응용 프로그램의 권한으로는처리가 불가능하다. 응용 프로그램에서 처리가 불가능한 것을 운영체제 내부로 들어와서OS가 직접 처리하게 되는데 이러한 전환은 시스템 콜을 통하여 이루어 ..
[OS] 스레드 컨텍스트 스위칭 #2
·
CS/OS
컨텍스트 스위칭프로세스 스케쥴링과 마찬가지로, 스레드 스케쥴링은 OS에서 스레드를 관리하며실행할 스레드를 선택하고 CPU를 할당하는 기법을 의미한다.즉 CPU가 실행중인 스레드의 상태(PC, SP 등)을 PCB와 커널 스택에 저장을 하고다른 스레드의 상태가 저장된 PCB를 복원하는 과정이다. 다만, 프로세스 컨텍스트 스위칭은 프로세스 간 스위칭이 일어나는 방식이고스레드 컨텍스트 스위칭은 보통 하나의 프로세스 내 다수의 스레드가 교체되는 형식이다.다른 프로세스의 스레드로 스위칭이 일어나기도 하는데 이 경우 오버헤드가 증가하게 된다. 스레드 스위칭이 발생하는 경우프로세스 스위칭과 거의 유사하다.스레드가 자발적으로 다른 스레드에게 양보yield() 등의 시스템 호출을 통해 스스로 Running -> ..
[OS] 스레드란, 스레드 주소공간 #1
·
CS/OS
스레드란?과거에는 다중 프로세스를 이용하여 멀티태스킹을 진행했다. (동시성 확보)다만 프로세스 단위로 멀티태스킹을 하게 되면 컨텍스트 스위칭을 통해서 스케쥴링 작업이 진행되는데이때 프로세스 생성 자체가 큰 오버헤드를 발생시키며 프로세스는 메모리 상 독립된 영역을 가지기 때문에프로세스 간 통신이 어렵다.이러한 배경으로 작업을 프로세스단위로 멀티태스킹을 하는게 아닌 새로운 실행 단위가 필요했고,스레드라는 단위가 등장하였다. 스레드는 프로세스에 있어서 작업을 하는 단위로, 하나의 프로세스 안에서 여러 스레드가동작되며 각각의 스레드는 독립적으로 수행된다.예를 들어서 하나의 엑셀 시트의 하나의 프로세스에는 저장 스레드, 삭제 스레드, 공유 스레드 등으로사용자의 작업에 따라서 해당 스레드를 실행시키는 것이다. ..
[OS] 프로세스 컨텍스트 스위칭이란? #2
·
CS/OS
컨텍스트 스위칭우리는 앞에서 cpu에 의해 프로그램이 프로세스가 되고, 이에 따른 프로세스 상태 전이를 살펴봤다.그러면 이러한 프로세스의 상태전이를 누가 담당하고 있는 것인가? 바로 CPU가 이를 담당하고 있고 위 방법을 컨텍스트 스위칭이라고 한다.즉, CPU에서 실행중인 프로세스를 결정정책(스케쥴러)에 의해서 다른 프로세스로 교체되는 방식이다. 발생원인보통 프로세스의 컨텍스트 스위칭이 일어나려는 주요 원인으로는 3가지가 있다.Time Ouota Expiry : OS가 할당해준 Time Slice를 다 사용하여 강제로 교체Interrupt : A 프로세스가 실행 중 입출력 등의 사용자 레벨에서 처리하기 힘든 기능을 수행이 필요해 인터럽트 신호를 발생시켜 프로세스가 스스로 멈..