[CS] 운영체제

SeoYoung Jung·2022년 7월 9일
1

스레싱 : 메모리의 페오지 폴트율이 높은것 , 심각한 성능 저하 초래
메모리에 너무 많은 프로세스가 동시에 올라가게 되면 스와핑이 많이 일어나서 발생하는것

해결방안 ㅣ 메모리 늘리거나 ,HDD를 SDD로 해결, 작업세트와 PFF
작업세트 : 프로세스의 과거 사용이력인 지역성을 통해 결정된 페이지 집합을 만들어서 미리 메모리에 로드하는 것, 미리 메모리에 로드하면 탐색에 드는 비용, 스와핑 감소

PFF : Page Fault Frequency 는 페이지 폴트 빈도를 조절하는 방법으로 상한선과 하한선을 만드는 방법입니다.

메모리 할당
연속할당 : 메모리에 연속적으로 공간 할당
고정분할 방식 : 메모리를 미리 나누어 관리, 융통성 없음, 내부 단편화 발생
가변분할 방식 : 매 시점 프로그램의 크기에 맞게 동적으로 메모리 관리,
내부단펴화는 발생하지 않지만 외부 단편화 발생가능
ex> 최초 적합, 최적 적합, 최악 적합

불연속 할당 : 메모리를 연속적으로 할당하지 않는 불연속 할당
1. 페이징 : 동일한 크기의 페이지 단위로 나누어 메모리의 서로 다른 위치에 프로세스 할당. 호의 크기가 균일하지 않은 문제가 없어지지만 주소변환이 복잡
2. 세그멘테이션 : 페이지 단위가 아닌 의미단위인 세그멘트로 나눈다. 코드와 데이터 , 함수 단위로 나눌 수있다. 공유와 보안측면에서 좋지만 홀의 크기가 규일하지않음
3.페이지드 세그멘테이션 : 공유나 보안을 의미단위의 세그먼트로 나누고 물리적 메모리는 페이지로 나누는 것

페이지 교체 알고리즘 종류
FIFO - 가장 먼저온 페이지를 교체영역
LRU - 참조가 오래된 페이지를 바꿈
NUR - 0과1을 가진 비트두고 참조 기준으로
LFU - 가장 참조 횟수가 적은 페이지를 교체

프로세스와 스레드
프로세스 : 컴퓨터에서 실행되고 있는 프로그램
스레드 : 프로세스내 작업의 흐름

전처리 : 소스 코드 주석제거 , 헤더 파일 병합 매크로 치환
컴파일러 : 오류처리, 최적화 작업, 어셈블리어 변환
링커 : 프로그램 내에 있는 라이브러리 함수 다른 파일들과 목적 코드 결합하여 실행 파일 만든다.

라이브러리

  • 정적 라이브러리 : 프로그램 빌드시 라이브러리가 제공하는 모든 코드를 실행 파일에 넣음, 외부의존도가 낮고 코드중복 효율성 떨어짐
  • 동적 라이브러리 : 프로그램 실행시 필요시에만 DLL이라는 함수 정보통해 참조 외부 의존도 가 높음

**프로세스의 상태
생성상태 - 대기상태 - 대기중단상태 - 실행상태 -중단상태 - 일시 중단상태 - 종료 상태

메모리구조

  • 스택 : 지역변수 매개 변수 함수 , 컴파일시 크기 결정 , 동적 특징
  • 힙 : 동적할당시 사용 런타임시 크기 결정
  • 데이터 영역 : 전역변수 정적 변수 저장 (BSS 영역과 Data 영역으로 나뉜다.)

IPC(Inter Process Communication)
프로세스 끼리 데이터를 주고 받고 공유 데이터를 관리
ex> 공유 메모리 ,소켓, 익명 파이프, 명명파이프, 메시지 큐

단점 : 메모리가 완전히 공유되는 스레드 보다는 속도가 떨어진다.

임계 영역: 공유 자원 접근시 순서 등의 이유로 결과가 달라지는 영역을 임계영역이라고 한다.

해결방법 : 세마포어, 뮤택스 모니터
(상호배제 한정대기 융통성) 조건 만족

뮤택스 ㅣ 공유자원 사용전에 설정하고 사용후에 해제하는 잠금 하나의 상태만 가진다.
세마포어 ㅣ 일반화 된 뮤텍스 간단한 정수값과 두가지 함수 및 ,,
모니터 ㅣ 둘 이상의 스레드나 프로세스가 공유 자원에 안전하게 접근할 수 있도록 공유 자원을 숨기고 해당 접근에 대해 인터페이스만 제공

예상QA

Q. 운영체제의 대표적 일중 하나는 메모리관리이다. 이중 메모리 관리기법중 하나인 가상 메모리란 무엇인가?

Q.가상 메모리는 존재하지만 실제메모리에 없는 경우에는 페이지 폴트가 발생한다. 이를 방지하기 위해 스와핑이라는 것을 하는데 스와핑은 무엇인가?

Q. 페이지와 프레임의 차이는?

profile
뚱땅뚱땅개발자

3개의 댓글

comment-user-thumbnail
2022년 7월 10일

가상 메모리(virtual memory)는 메모리 관리 기법의 하나로 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것을 말합니다.

-알라딘 eBook <면접을 위한 CS 전공지식 노트> (주홍철 지음) 중에서

답글 달기
comment-user-thumbnail
2022년 7월 10일

당장 사용하지 않는 영역을 하드디스크로 옮겨 필요할 때 다시 RAM으로 불러와 올리고, 사용하지 않으면 다시 하드디스크로 내림을 반복하여 RAM을 효과적으로 관리하는 것을 스와핑(swapping)이라고 합니다.

-알라딘 eBook <면접을 위한 CS 전공지식 노트> (주홍철 지음) 중에서

답글 달기
comment-user-thumbnail
2022년 7월 10일

페이지(page)
가상 메모리를 사용하는 최소 크기 단위

––– 프레임(frame)
실제 메모리를 사용하는 최소 크기 단위

-알라딘 eBook <면접을 위한 CS 전공지식 노트> (주홍철 지음) 중에서

답글 달기