반응형 IT Computer74 파일 시스템의 기본 개념 이 포스트는 실제 파일 시스템의 내용보다는 그 기초가 되는 내용들로 구성되어있습니다. 우리는 컴퓨터 작업을 한 뒤 SSD, 하드디스크 등 파일들을 저장하게 됩니다. 이런 보조 저장장치에 논리적 저장 단위를 정의합니다. txt나 exe 같은 일련의 바이너리 데이터를 규정하여 보조 저장장치에 저장하기 위한 최소한의 단위입니다. 파일의 구성과 개념 파일 유형 파일 유형을 알고 그에 대한 올바른 연산을 한다면 합리적으로 사용하게 됩니다. 예를 들어 컴파일을 해야 하는 소스코드 파일을 링킹 같은 작업을 한다면 쓰레기 파일을 만들어 내게 됩니다. 흔히 확장자라고 하며 이에 따라 파일을 다루게 됩니다. 실행파일인 exe 소스코드 확장자 c, cpp, java 배치 확장자인 bat, sh 등이 존재합니다. 확장자가 있.. 2021. 12. 21. 메모리 할당 기법, 페이징 메모리 관리 프로세스의 수행을 위해서 메인 메모리에 파일들을 적재해야 합니다. 이를 위한 기법들이 존재하고 각 방법들의 장단점이 존재합니다. 프로세스의 실행을 위해 메모리에는 연산자와 피연산자를 적재하고 필요에 따라 보조 저장장치에서 불러오기도 합니다. 주소 공간 현재 대부분의 운영체제에서 인식하는 메모리는 선형적이지만 실제 메모리 상에서는 전혀 다르게 할당되어 있습니다. 메모리 관리 장치(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. 이전 1 2 3 4 5 6 7 ··· 13 다음 반응형