일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로세스
- db
- OS
- CS지식
- cs
- 안드로이드
- reactnative
- Operating System
- 코틀린
- 스레드
- 데이터베이스
- github
- 메모리
- 앱개발
- MVVM
- 앱
- 리액트네이티브
- 안드로이드 개발
- 앱 개발
- 안드로이드 디자인 패턴
- Kotlin
- 디자인패턴
- 운영체제
- 개발
- 액티비티
- 리액트
- Database
- Android
- 디자인 패턴
- React
- Today
- Total
목록CS지식 (5)
Tech Log
메모리가 한정되어 있으므로 스와핑이 많이 일어나며 이러한 스와핑은 많이 일어나지 않도록 설계되어야 한다. 스와핑은 페이지 교체 알고리즘을 기반으로 일어난다. 오프라인 알고리즘(offline algorithm) 먼 미래에 참조되는 페이지와 현재 할당하는 페이지를 바꾸는 알고리즘. 가장 좋은 방법이나 미래에 사용되는 프로세스를 우리는 알 수 없기 때문에 사용할 수 없는 알고리즘이다. 다른 알고리즘과의 성능 비교에 대한 기준으로 사용한다. FIFO(First In First Out) 가장 먼저 온 페이지를 교체 영역에 가장 먼저 놓는 방법 LRU(Least Recentle Used) 참조가 가장 오래된 페이지를 바꾼다. 이 오래된 것을 파악하기 위해 각 페이지마다 계수기(counter), 스택을 두어야 하는 ..
메모리에 프로그램을 할당할 때는 시작 메모리 위치, 메모리의 할당 크기를 기반으로 한다. 할당 방식은 연속 할당과 불연속 할당으로 나뉜다. 연속 할당 메모리에 연속적으로 공간을 할당하는 것이다. 프로세스를 순차적으로 공간에 할당한다. 연속 할당은 고정 분할 방식과 가변 분할 방식으로 나뉜다. 고정 분할 방식(fixed partition allocation) 메모리를 미리 나누어 관리하는 방식. 큰 프로세스가 메모리에 올라오면 여러 조각으로 나누어서 배치한다. 장점 : 메모리를 일정한 크기로 나누어 관리하므로 메모리 관리가 수월하다(가변 분할 방식의 메모리 통합같은 부가적인 작업을 할 필요가 없다) 단점 : 메모리가 미리 나뉘어 있으므로 융통성이 없다. 또한 내부 단편화가 발생한다. *내부 단편화(inte..
가상 메모리(virtual memory) 메모리 관리 기법 중 하나로, 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 사용자들에게 매우 큰 메모리로 보이게 하는 것. 가상적으로 주어진 주소를 가상 주소(logical address) 실제 메모리 상에 있는 주소를 실제 주소(physical address) 가상 주소는 메모리관리장치(MMU)에 의해 실제 주소로 변환 이를 통해 사용자는 실제 주소를 의식할 필요 없이 프로그램을 구축할 수 있게 된다. 가상 메모리는 가상 주소와 실제 주소가 매핑되어 있으며, 프로세스의 주소 정보가 들어 있는 페이지 테이블로 관리된다. 이때 속도 향상을 위해 TLB를 사용한다. *TLB : 메모리와 CPU 사이에 있는 주소 변환을 위한 캐시. 페이지 테이블에 있는 리스트..
컴퓨터의 요소 컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 이루어져 있다. CPU(Central Processing Unit) 산술논리연산장치, 제어장치, 레지스터로 구성되어 있는 컴퓨터 장치 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행 커널이 프로그램을 메모리에 올려 프로세스를 만들면 CPU가 이를 처리 제어장치(Control Unit, CU) 프로세스 조작을 지시하는 CPU의 한 부품 입출력장치 간 통신을 제어 명령어들을 읽고 해석 데이터 처리를 위한 순서를 결정 레지스터 CPU 안에 있는 매우 빠른 임시기억장치 CPU와 직접 연결되어 있어 연산 속도가 메모리보다 수십 배 빠르다 CPU가 자체적으로 데이터를 저장할 방법이 없어 레지스터를 거쳐 데이..
운영체제 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스. 한정된 메모리나 시스템 자원을 효율적으로 분배하는 역할. 예) PC 운영체제(Mac OS, Windows, 유닉스, 리눅스 등), 모바일 운영체제(iOS, 안드로이드 등) *운영체제와 유사하나 소프트웨어를 추가로 설치할 수 없는 것이 펌웨어(Firmware). 펌웨어는 특정 하드웨어에 포함된 소프트웨어를 말한다. 운영체제의 역할 CPU 스케줄링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환 관리 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼마큼 할당할지를 관리 디스크 파일 관리 : 디스크 파일의 보관 방법을 관리 I/O 디바이스 관리 : I/O 디바이스들(마우스, 키보드 등)과 컴..