본문 바로가기
반응형

전체 글73

메모리 할당 기법, 페이징 메모리 관리 프로세스의 수행을 위해서 메인 메모리에 파일들을 적재해야 합니다. 이를 위한 기법들이 존재하고 각 방법들의 장단점이 존재합니다. 프로세스의 실행을 위해 메모리에는 연산자와 피연산자를 적재하고 필요에 따라 보조 저장장치에서 불러오기도 합니다. 주소 공간 현재 대부분의 운영체제에서 인식하는 메모리는 선형적이지만 실제 메모리 상에서는 전혀 다르게 할당되어 있습니다. 메모리 관리 장치(MMU)에 의해 가상 논리 주소와 물리 주소 간에 변환을 수행합니다. 단편화 메모리 할당과 제거가 일어나다 보면 메모리 공간들이 여러 작은 조각들로 나뉠 가능성이 높아집니다. 이 작은 공간들을 모으면 하나의 큰 메모리가 되어 사용할 수 있지만 나뉘게 되면 버려지는 공간이 됩니다. 외부 단편화 선형적으로 프로세스에게 필.. 2021. 12. 12.
뮤텍스와 세마포어, 동기화 문제 해결 도구 동기화 도구 필요성과 이해 동기화 문제 프로세스가 공유하는 데이터를 병렬로 처리하게 될 때 문제가 발생할 수 있습니다. 실행 순서가 뒤바뀌거나 다른 프로세스가 한번 처리될 때 2번이 처리되는 순간 결과는 완전히 달라집니다. 이런 경쟁 상황을 막기 위해 프로세스 간 동기화가 필요합니다. 임계 구역 문제 프로세스 처리 루틴에는 임계 구역이라는 부분을 가지고 있습니다. 적어도 하나 이상의 프로세스와 공유 데이터를 접근 또는 갱신합니다. 임계 구역에서는 동시에 두 개 이상의 프로세스가 실행되지 못해야 합니다. 각 프로세스들이 진입 요청을 하고 임계 구역에 진입을 해야 합니다. 임계 구역에 대한 해결 조건 상호 배제 진행 한정된 대기 상호 배제, 한 프로세스가 자신의 임계 구역에서 실행 시 다른 프로세스는 그 자.. 2021. 11. 14.
파이썬 math 패키지 (삼각함수, 상수, 로그 사용) math 패키지 고급 수학 함수나 과학 관련 함수가 필요할 때 사용하는 패키지입니다. 파이썬이 설치될 때 같이 설치되어 따로 설치할 필요 없이 바로 사용 가능합니다. pi나 e 같은 특수한 상수 값도 제공합니다. math 패키지 카테고리 삼각함수 : sin, cos, tan 등 기본 삼각함수 역삼각함수 : asin, acos, atan 등 역삼각 함수 하이퍼 삼각함수(쌍곡선) : sinh, cosh, tanh와 asinh 등 쌍곡선 형태의 삼각함수 각도와 라디안 : 흔히 쓰는 각도(º)와 π 같은 라디안 값으로의 변환 각도가 친근할 수 있으나 삼각함수에서는 라디안 값을 사용하므로 라디안으로 변환이 필수적임 로그 : 밑이 2와 10, e 등의 로그를 지원 정수 변환 및 기타 : floor와 ceil 같은 .. 2021. 11. 6.
파이썬 random 패키지 파이썬 프로그래밍을 하다 보면 난수를 필요로 하는 시점이 발생합니다. 파이썬에는 파이썬을 설치하면서 random패키지도 같이 설치되어 따로 모듈을 설치하지 않고 random 패키지를 탑재할 수 있습니다. random 패키지는 단순 난수 도구 이외의 통계에 필요한 간단한 도구를 제공합니다. 간단한 난수 구현기이며 매우 완벽한 100% 난수가 아닌 의사 난수입니다. Random 패키지 함수 random() random.random() 1을 제외한 [0,1) 사이의 실수 무작위 수를 생성합니다. randint(a, b) random.randint(a,b) 동일한 확률로 a~b 범위에 무작위 정수를 반환합니다. b를 포함한 범위이므로 [a, b]입니다. shuffle(list) random.shuffle(lis.. 2021. 10. 31.
운영체제 다중처리 실시간 CPU 스케줄링 (OS scheduling 2) 다중처리 스케줄링 다중처리가 가능한 CPU의 경우 단일처리와 다르게 스케줄링 알고리즘의 보완이 필요합니다. 프로세스 큐의 부하 공유가 필요합니다. 다중 처리를 위해 대칭 다중처리가 일반적이고 그중에서 공통 준비 큐, 각각의 준비 큐를 할 수 있는 두 가지 방법이 존재합니다. 각 전략별 중점은 공통 준비 큐의 경우 경쟁 조건을 방지해야 합니다. 프로세서간 동일한 스레드를 스케줄 해서는 안됩니다. 코어당 실행 큐의 경우 부하를 적절히 나눠야 합니다. 대부분의 운영체제, cpu들은 대칭 다중 처리(SMP, symmetric multiprocessing)를 지원합니다. 로드 밸런싱 Load balancing 다중 처리기에서는 부하를 처리기마다 균등하게 배분하는 것이 문제입니다. 자칫하면 어떤 처리기는 놀게 되고.. 2021. 10. 17.
단일처리 CPU 스케줄링 개념과 종류 (OS Scheduling 1) 스케줄링 다중 프로세스 처리를 위해 꼭 필요한 기본 개념입니다. 여기서는 단일처리의 경우 스케줄링 개념을 설명합니다. 스케줄링은 CPU를 프로세스들이 번갈아면서 좀 더 효율적으로 동작하게끔 합니다. 스케줄링의 목적은 CPU의 이용을 최대화 하는데 있습니다. 코어는 하나의 프로세스만 처리하는 것이 당연한 일입니다. (CMT 제외 ,CMT 칩 수준 스레딩 : 코어당 여러개의 스레드를 두어 메모리 스톨로 인한 이용률 저하를 막는데 있음) 그런데 프로세스가 I/O 요청으로 대기하고 있다면 CPU는 그저 쉬게 됩니다. 이는 성능에 있어서, 효율에 있어서 좋지 않습니다. 다른 밀려있는 수많은 프로세스를 수행하지 못하고 낭비됩니다. 때문에 스케줄링 작업을 하여 이를 방지합니다. CPU, I/O 버스트 CPU 스케줄링.. 2021. 10. 8.
반응형