컴퓨터 공부

    쉽게 배우는 운영체제(Part2)

    CPU 와 메모리더보기CPU 의 기본구성산술논리 연산장치산술연산(+, -), 논리연산(or, and) 수행제어장치CPU 작업 지시레지스터데이터 임시 보관 (데이터, 주소)메모리메모리 보호멀티 프로세싱 상황(시분할)에서 각 작업간의 데이터 보호CPU 는 작업의 메모리 시작지점을 경계 레지스터리에 저장현재 진행중인 작업의 메모리 크기(마지막 주소 - 시작 주소) 를 한계 레지스터에 저장두 범위가 벗어나는지 하드웨어 점검부팅운영체제를 메모리에 올리는 과정바이오스(운영체제 config) 실행부트스트랩 실행 - 운영체제를 메모리로 가져와 실프로세스더보기프로그램 -> 프로세스시분할 프로세스 상태생성 상태 - 프로세스가 메모리에 올라와 있는 상태준비 상태 - 생성된 프로세스가 CPU 를 기다리는 상태실행 상태 - 실..

    쉽게 배우는 운영체제(Part1)

    운영체제 개요더보기OS 라고도 일컫는 운영체제는 복잡한 작업 환경에 규칙이 필요하였기에 만들어졌다. 운영체제 목표자원 관리 최적화 - 효율성자원 보호 - 안정성하드웨어 인터페이스 - 확장성사용자 인터페이스 - 편리성 운영체제의 구조커널 - 핵심기능인터페이스 - 사용자, 응용 프로그램 소통커널시스템 호출 - 커널 인터페이스직접접근 - 자원에 직접 접근하여 작업시스템 호출 접근 - 요청 과 결과만 접근하는 작업드라이버 - 커널 하드웨어 인터페이스구성프로세스 관리메모리 관리파일 시스템 관리입출력 관리프로세스 간 통신 관리구조단일형계층형모듈형 구조마이크로핵심 기능만 구현나머지 부분 사용자 영역 컴퓨터의 구조와 성능향상더보기하드웨어 구성CPU 와 메모리입출력 장치저장장치메인보드CPU산술논리 연산장치제어장치레지..

    고성능 파이썬(7)

    C언어로 컴파일하기 코드를 빠르게 하는 가장 쉬운 방법은 처리할 작업의 양을 줄이는 것이다. 작업의 양을 줄이는 방법은 최적의 알고리즘을 사용하고 수행할 명령의 수를 줄이는것이다. 이때 수행할 명령의 수를 줄이는 가장 쉬운 방법은 코드를 기계어로 컴파일 하는 것이다. 컴파일로 빨라지는 부분은 대체로 수학적인 부분이다. 같은 연산을 반보가는 코드를 포함할때 임시 객체를 많이 사용하기 때문이다. 수학 계산에 초점을 맞춘 코드라면 직접 작성한 포트란 루틴이 C로 작성한 루틴보다 더 빠를것이다. 하지만 이는 전문가적인 수준이고 보통 C코드만큼의 성능을 기대할수있다. 이렇게 컴파일을 할때 노력과 실행정도를 따져서 성능개선을 해야하는 부분도 있다. 컴파일 방식 AOT(사이썬) : 미리 컴파일 컴퓨터에 특화된 정적 ..

    고성능 파이썬(6)

    행렬과 벡터계산 루프 안에서 sin(num_iterations) 값은 변경되지 않으므로 매번 계산할 필요가 없다. 파이썬은 벡터 연산을 기본으로 제공하지 않는다. 그 이유는 파이썬의 리스트는 실제 데이터를 가리키는 포인터를 저장한다는 점과 파이썬 바이트 코드는 벡터 연산에 최적화되지 않았다는 점이다. 이때 포인터는 벡터와 행렬 연산에서 성능 저하의 원인이 된다. 예를 들어 example[5][2] 를 실행하면 example 리스트에서 5번째 항목을 찾아 반환한 다음 2번째 항목을 찾아야지만 그 항목의 데이터 위치를 알수있기 때문이다. CPU 로 행렬을 계산하게 되면 어마어마한 미스 레이턴시가 발생한다. 이로 인해 CPU의 성능이 느려지는데, 그 이유는 CPU의 캐시에 데이터를 여러벌 준비할수 없고, 만약..