시스템 호출(system call)은 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 보통 C나 C++과 같은 고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법이다. 

 

쉽게 얘기해서 윈도우(운영체제)커널와 게임(응용프로그램)간의 접근하기 쉽게 해주는 인터페이스라고 생각하면 쉬울것같다.

 

*커널

운영 체제(OS)의 심장이자 OS를 규정짓는 매우 중요한 부분. 하드웨어의 자원을 자원이 필요한 프로세스에 나눠주고, 덩달아 프로세스 제어(태스크 매니저), 메모리 제어, 프로그램이 운영체제에 요구하는 시스템 콜 등을 수행하는 부분으로 운영체제 맨 하부에서 돌아간다. 

 

-출처 위키백과-

가상 기억장치?

보조기억장치의 일부를 주기억장치처럼 사용하는 것으로 용량이 작은 주기억장치를 마치 큰 용량을 가진것 처럼 사용하는 것으로 현재 사용되는 운영체제 가장 흔한 기법이다.

 

가상 기억장치 구현기법?

 

페이징 기법: 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈후 나눠진 프로그램을

동일하게 나눠진 프로그램(페이지) 주기억장치의 영역에 적재시켜 실행하는 기법

 

세그먼테이션 기법: 가상 기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈후 주기억장치에 적재시켜 실행시키는 기법

 

주소 변환: 가상 기억 장치에 있는 프로그램이 주기억장치에 적재되어 실행될 때 논리적인 가상주소를 물리적인 실기억주소로 변환하는 것으로, 주소 사상또는 주소매핑이라함

단편화

분할된 주기억장치에 프로그램을 할당하고 반납하는 과정을 반복하면서 사용되지않고 남는 기억장치의 빈공간 조각을 의미한다.

내부단편화: 분할된 영역이 할당될 프로그램의 크기보다 크기 때문에 프로그램이 할당된 후 사용되지 않고 남아 있는 빈공간

외부단편화:분할된 영역이 할당될 프로그램의 크기보다 작기 때문에 프로그램이 할당될수 없어 사용되지 않고 빈공간으로 남아 있는 분할된 전체영역

 

단편화 해결법

통합 기법:주기억 장치 내에 인접해 있는 단편화된 공간을 하나의 공간으로 통합하는 과정

압축 기법:주기억장치내에 분산되어 있는 단편화된 빈공간을 결합하여 하나의 큰 가용공간을 만드는 작업

'컴퓨터과학 > 운영체제' 카테고리의 다른 글

시스템 콜  (0) 2020.11.18
<운영체제21>가상 기억장치  (0) 2020.10.23
<운영체제 19>기억장치 관리 전략  (0) 2020.10.23
<운영체제 18> 교착상태 해결 방법  (0) 2020.10.21
<운영체제17> 교착 상태  (0) 2020.10.21

반입 전략: 보조기억 장치에 보관 중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 

결정하는 전략

배치 전략: 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략

교체전략: 주기억장치의 모든 영역이 이미 사용중인 상태에서 가상기억장치의 필요한 페이지를 주기억장치에 배치하려고 할때, 이미 사용되고 있는 영역중에서 어느 영역을 교체하여 사용할 것인지를 결적하는 전략 

예방 기법: 교착 상태가 발생되지 않도록 사전에 시스템을 제어하는 방법으로, 교착 상태 발생의 4가지 조건 중에서

어느 하나를 제거함으로써 수행되며 일반적으로 자원의 낭비가 가장 심함

   상호 배제 부정: 한번에 여러 개의 프로세서가 공유 자원을 사용할 수 있도록 하는 것이지만, 실제로는 구현하지 않음

   점유 맟 대기 부정 : 프로세스가 실행되기 전 필요한 모든 자원을 할당하여 프로세스 대가를 없애거나 자원이 점유되지 않는 상태에서만 자원을 요구함

   비선점 부정 : 자원을 점유하고 있는 프로세스가 다른 장원을 요구할떄 점유하고 있는 자원을 반납하고, 요구한 자원을 자원을 사용하기 위해 기다리게함

    환형대기부정: 지원을 선형 순서로 분류하여 고유 번호를 할당하고, 각 프로세스는 현재 점유한 자원의 고유번호보다 앞 이나 뒤 어느 한쪽 방향으로만 자원을 요구하도록 하는것 

 

회피기법: 교착 상태가 발생할 가능성을 배제하지 않고, 교착 상태가 발생하면 적절히 피해나 가는 방법으로, 주로 은행원 알고리즘이 사용됨.

     은행원 알고리즘: 다이크스트라가 제안한 것으로, 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는 데서 유래하는 기법

    발견 기법: 시스템에 교착 상태가 발생했는지 점검하여 교착 상태에 있는 프로세스와 자원을 발견하는 것으로, 자원 할당 그래프 등을 사용함

    회복 기법: 교착 상태를 일으킨 프로세스를 종료하거나 교착 상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것

 

 

 

정의:

상호베제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스 점유하고 있는 자원을 요구하며 무한정 기다리는 현상 

 

필요충분조건:

상호베제: 한번에 한개의 프로세스만이 공유 자원을 사용할수 있어야함

점유와 대기: 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스가 있어야함

비선점: 다른 프로세스에 할당된 자원은 사용이 끝날때까지 강제로 빼앗을 수 없어야함

환형대기: 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된

자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야함

동기화를 구현하기 위한 특수 프로그램 기법으로 특정 공유 자원을 프로세스에게 할당하는 데 필요한 데이터와 이 데이터를 처리하는 프로시저로 구성된다.

임계구역

          -다중 프로그래밍 운영체제에서 여러개의 프로세스가 공유하는 데이터 및 자원에 대하여 어느 한 

          시점에서는 하나의 프로세스만 자원 또는 데이터를 사용하도록 지정된 공유 자원을 의마한다.

 

          -임계 구역에는 하나의 프로세스만 접근할수 있으며, 해당 프로세스가 자원을 반납한 후에만 다른 프로세스가

            자원이나 데이터를 사용할수 있다.

          

          -임계구역은 특정 프로세스가 독점할 수 없다.

    

 

삼호배제

      특정 프로세스가 공유자원을 사용하고 있을 경우 다른 프로세스가 해당 공유자원을 사용하지 못하게 제어하는 기법

 

세마포어

      각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법이다.

 

 

+ Recent posts