운영체제

면접용 운영체제 정리-2

shulk 2023. 10. 13. 09:21

*스와핑: 현재 필요 없는 프로세스는 보조기억장치의 스왑영역에 보내고 반대로 당장 필요한걸 메모리로 가져오는기법을 말합니다.

*외부 단편화: 프로세스들 실행,종료 반복하며 빈 공간이 생기는데 이게 할당될 프로세스보다 작아서 빈 공간으로 남아있는 메모리 낭비 현상

*내부 단편화: 페이지의 크기만큼 분할된 영역이 할당된 프로세스의 크기보다 커서 사용되지 않고 남아있는 메모리 낭비 현상

*페이징: 프로세스의 논리 주소 공간을 페이지 단위로 자르고 메모리의 물리 주소 공간을 프레임 단위로 자른뒤 각 페이지를 프레임에 할당하는 가상 메모리 관리 기법을 말합니다. 이로 인해 외부단편화도 해결합니다.


*가상 메모리: 프로세스의 일부만 적재하여 실제 물리 메모리보다 큰 프로세스를 실행하는 기술입니다

*페이지 테이블: 프레임과 페이지의 정보를 담고 있는 표 형태의 데이터이고 사용하는 이유는 프로세스가 메모리에 불연속적으로 배치되면 cpu 입장에서 다음에 실행할 명령어 위치 찾기 어려워서 입니다.

*베이스 레지스터: 각 프로세스의 페이지 테이블 위치를 가리키는 레지스터입니다.

*페이지 폴트: 프로세스가 페이지 요청했는데 메모리에 없는 경우를 말합니다. 
                 그리고 이때 다시 보조기억장치의 스왑영영에서 페이지를 가져와야합니다.

*유효비트: 페이지 테이블에 있는 정보중 하나이고 접근하려는 페이지가 메모리에 있는 경우 1 없는 경우 0으로 표시합니다.

*참초비트: 페이지 테이블에 있는 정보중 하나이고  어떠한 페이지를 읽거나 쓴 페이지는 1 아닌경우0

*요구 페이징: 프로세스를 메모리에 적재할때 처음부터 모든 페이지 말고 필요한 페이지만 메모리에 적재하는 기법입니다.

*페이지 교체 알고리즘: FIFO,최적,LRU

*스래싱: 지나치게 많은 페이지 교체로 인해 cpu이용률이 낮아지는 문제를 말합니다.

*파일 시스템: 파일과 디렉토리를 관리하는 커널의 한 부분

*파일: 보조기억 장치의 의미있는 정보의 집합이고 구성 요소로는 이름,실행하기 위한 정보,메타데이터가 있습니다.
         접근의 단위는 블록 단위로

*절대경로,상대경로: 절대는 루트 디렉토리부터 시작하는 경로이고 상대는 현재 디렉토리부터 시작하는 경로입니다.

*디렉터리: 여러 파일들을 관리하는거를 말하고 디렉터리는 파일이름,위치 정보,파일속성으로 구성되있습니다.

*파티셔닝: 보조기억장치의 영역을 여러 단위로 구획하는 작업

*파티션: 보조기억장치에서 구획된 영역

*포매팅: 파일 시스템을 설정하여,어떤 방식으로 파일을 저장하고 관리할건지 결정하고 새로운 데이터 쓸수있게하는 작업

*FAT: 연결 할당의 단점을 보완한 방법이고 블록주소,다음블록주소 담긴 테이블을 이용하는 파일 시스템 입니다.

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

추가정리

 

*이중 모드란 CPU가 명령어를 실행하는 모드를 사용자모드,커널모드로 구분하는 방식입니다!


*사용자모드(응용프로그램)가 커널모드 서비스를 사용하려면 시스템 호출을 해야한다! (소프트웨어 인터럽트라 하기도한다)


*사용자 모드에는 코드,데이터,힙,스택 영역이 있고 (코드랑 데이터는 정적 ) (힙이랑 스택은 동적)
  -코드: CPU가 실행할 기계어로 이루어진 명령어, 쓰기 금지,읽기전용
  -데이터: 프로그램이 실행되는 동안 유지할 데이터가 저장되는 공간,전역 변수가 대표적
  -힙: 프로그래머가 직접 할당할 수 있는 저장공간,할당했다면 나중엔 반환 해야한다. 안그러면 메모리 누수(메모리 낭비)
  -스택: 데이터를 일시적으로 저장하는 공간,대표적으로 매개변수,지역변수
 
*데몬 ,서비스=> 사용자와 상호작용 하지 않으면서 실행되는 백그라운드 프로세스


*왜 멀티 쓰레드를 더 많이 사용하는가?=>하나의 프로그램 안에서 여러 작업을 해결하는 것이 더욱 효율적이고, 
                                              Context Switching 시, Stack 영역만 초기화하면 되기 때문에 더 빠릅니다. 
*TLB: 페이지 테이블 캐시 메모리이고 메모리에 테이블 두면 접근 시간이 두배로 늘어나서

*페이지교체 알고리즘
 1) FIFO: 메모리에 먼저 올라온 페이지부터 내쫒는 방식
 2) 2차 기회: FIFO의 경우대로 순서를 하고 참조비트를 확인해서 1이면 0으로 변경우 한번의 기회 더 주고 다음꺼들을 확인하면서 0이면 그 페이지를 내보낸다.
 3) 최적: 앞으로 사용 빈도가 가장 낮은 페이지를 교체하는 방식이지만 실질적으로는 알기 어렵고 이론적이기만하다.
 4) LRU: 현재 가장 사용이 적었던 페이지를 교체하는 방식