해시 테이블
·
CS/자료구조
오늘은 멘토님의 갑작스러운 질문에 답변하지 못했던 기억을 되살려 해시테이블을 뿌셔보려고한다.사실 swift에서는 굳이 해시 테이블을 직접 구현해서 쓸일 이 없다 왜냐면 딕셔너리가 있기 때문이다. 하지만 꼭 내가 swift만 공부할거라는 보장도 없고 이번 기회에 내부적으로 어떤식으로 공부하면 다른 언어에서도 자료구조 공부할 떄 도움이 될 것 같다 . 그러면  거두절미하고 바로 들어가보자. 해시 테이블이란?  해시 테이블은 Key - value 형태로 데이터를 저장하는 자료구조 중 하나이며 다음과 같은 특징을 같는다.특징key 값을 해시 함수를 통해 해시 주소값 해시 index(해시 주소값)으로 바꾼다.value에 접근할 때는 위에서 만든 해시 index을 통해 접근한다.해시 테이블의 평균 시간 복잡도는 O..
프로세스와 스레드
·
CS/OS
프로세스실행되고 있는 프로그램 또는 CPU 스케줄링의 대상이되는 작업을 의미한다. 프로세스의 상태여기서 상태 변화의 원이는 CPU 소유권과 메모리 부족여부이다. 생성프로세스를 생성 상태, fork() 또는 exec()함수를 통해 생성되며, PCB가 할당된다.대기메모리 공간이 충분하면 메모리를 할당받고 아니면 할당하지 않은 상태로 CPU 소유권이 넘어오기 기다리는 상태대기중단메모리 부족으로 일시 중단된 상태실행소유권과 메모리를  모두 할당받고 수행중인 상태중단이벤트가 발생되여 프로세스가 차단된 상태 , 대표적으로 I/O 디바이스에 의한 인터럽트가 있다.일시중단중단된 상태에서 프로세스 소유권을 받으려했지만 메모리가 부족하여 다시 대기하는 상태종료메모리와 CPU를 모두 내려놓는 상태프로세스의 메모리 구조동적영..
가상메모리
·
CS/OS
가상메모리란? 가상 메모리는 메모리가 실제 메모리보다 많아 보이게 하는 기술로, 어떤 프로세스가 실행될 때 메모리에 해당 프로세스 전체가 올라가지  않더라도 실행이 가능하다는 점에 착안하여 고안되었다.이에 따라 사용들에게 매우 큰메모리로 보이게 만다는 효과를 준다. MMU (Memoery ManageMent Unit)가상메모리를 설명할 때 두개의 주소 개념이 등장한다.가상 주소각 프로세스 당 주어지는 논리적인 주소 공간레지스터 크기에 종속적실제 주소실제 하드웨어 메모리 주소메모리에서 가상주소와 물리주소의 변환 변환 작업을 진행하면 작업 부하가 높아지므로 MMU는 가상주소를 물리주소로 변환하여 메모리를 보호하는 역할을 한다.페이지 테이블 프로세스는 페이지 테이블을 통해 논리 주소를 물리 주소로 변환한다.페..
메모리
·
CS/OS
메모리 계층레지스터CPU 안에 있는 작은 메모리, 휘발성, 가장 빠른속도, 가장 적은 용량캐시데이터를 미리 복사해 놓는 임시 저장소빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리위치는 CPU의 레지스터와 주기억장치 사이에 위치한다같은 의미로 캐시 계층이라는 의미는 속도 차이를 해결하기 위해 계층과 계층 사이에 있는 계층을 의마하며캐시 메모리와 보조기억장치 사이에 있는 주기억장치를 보조기억장치의 캐싱 계층이라고 부를 수 있다.휘발성, 빠른속도, 적은 용량을 같는다. 캐시는 L1 ~ L3 까지있다.주기억장치RAM을 지칭하며 휘발성, 보통 속도, 용량 보통 보조기억장치휘발성, 낮은 속도, 큰 용량캐시캐시를 데이터 기반으로 설명한다면 다음 특징과 함께 설명할 수 있다. 시간 지역성 ..
컴퓨터의 요소
·
CS/OS
컴퓨터의 요소CPUDMA 컨트롤러메모리타이머디바이스 컨트롤러1. CPU Central Processing Unit의 약자로 중앙 처리 장치의 약자이다. CPU를 구성요소 = 산술논리연산장치 + 제어장치 + 레지스터로 구성되어 있으며 메모리에 존재하는 명령어를해석해서 실행하는 역할을 담당한다. 구성요소제어장치 [CU, ControlUnit]입출력간 통신을 제어하고 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정한다.레즈스터 [Register]CPU 내부에 있는 매우 빠른 임시기억장치 연산속도가 가장 빠르고 저장 크기가 가장 작은 기억장치이다.산술논리연산장치 [ALU, Arithmetic Logic Unit]덧셈, 뺄셈 같은 산술연산 + 논리 연산을 담당하는 디지털회로, 전체적인 연산을 담당한다. ..
운영체제 [ 역할과 구조, 시스템콜 ,커널 ]
·
CS/OS
OS란?OS는 Operating System의 약자로 운영체제를 뜻한다. 사용자가 컴퓨터를 쉽게 사용할 수 있게해주는 인터페이스로 한정된 메모리나 시스템 자원을 효율적 제어및 관리하는컴퓨터의 중요한 관리자 역할을 담당한다. 역할CPU 스케줄링과 프로세스 관리CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리메모리관리한정된 메모리를 어떤 프로세스에 할당해야하는지 관리디스크파일 관리디스크파일을 어떤 방법으로 보관할지 관리I/O 디바이스 관리I/O 디바이스들 간에 데이터를 주고받는 것을 관리구조 위 사진을 통해 보면 가장 최상단에 응용 프로그램(유저 프로그램)이 있고 그 아래 GUI, 시스템콜, 커널, 드라이버가있으며 가장 하단에 하드웨어가 있다. 여기서 GUI ~..