본문 바로가기

분류 전체보기

(38)
[안드로이드] 카카오 API 로그인 카카오 로그인 API 만들기 1. 애플리케이션 등록 1-1.앱 만들기 내 애플리케이션 > 애플리케이션 추가하기 1-2. 플랫폼 선택 내 애플리케이션 > 앱 설정 > 플랫폼 플랫폼 등록 버튼을 눌러 플랫폼 추가 1-3. 카카오 로그인 설정 내 애플리케이션 > 제품 설정 > 카카오 로그인에서 활성화 ON 1-4. 동의 항목 설정 내 애플리케이션 > 제품 설정 > 동의항목 필요한 사용자 정보 동의 항목 설정 1-5. Redirect URI 등록 앱 설정 > 카카오 로그인 > Redirect URI 1-6. 팀 멤버 등록 내 애플리케이션 > 앱 설정 > 팀관리 2. SDK 사용 2-1 root 레벨의 build.gradle 에 카카오 레파지토리(Repository, 저장소) 설정 subprojects { rep..
캐시 메모리 캐시 메모리란 캐시 메모리는 속도가 빠른 장치와 느린 장치간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리 이러한 역할을 수행하기 위해서는 CPU 가 어떤 데이터를 원할 것인가를 어느 정도 예측할 수 있어야 하는데, 이를 시간적, 공간적 지역성을 기반으로 판단 시간적 지역성 - 최근에 접근된 데이터 공간적 지역성 - 최근에 접근된 데이터의 주변 데이터 캐시 메모리에 역활 시간적, 공간적 지역성을 기반으로 가까운 미래에 접근될 확률이 높은 데이터를 작지만 빠른 캐시 메모리에 미리 보관하여 전체적인 시스템의 성능을 높여주는 것 캐시 라인이란 프로세서는 다양한 주소에 있는 데이터를 사용하므로 일반적으로 빈번하게 사용하는 데이터의 주소는 흩어져 있다 따라서 캐시에 저장하는 데이터는 해당 데이터의 메모리 ..
가상메모리(페이지 교체 알고리즘) 페이지 교체 알고리즘 배경 요구 페이징 시스템은 프로세스가 특정 페이지를 요구할 때 해당 페이지를 물리 메모리에 로딩한다. 메모리에 필요한 페이지가 있을 때는 잘 진행되지만, 없을 경우에는 문제가 생긴다. 프로세스가 필요로 하는 페이지가 없는 경우(page-fault) 하드 디스크에서 페이지를 찾아 빈 프레임에 로딩하는데, 여기서 또다시 ‘페이지를 올릴 빈 프레임이 없을 경우’ 란 문제에 직면할 수 있다. 이때 사용하는 것이 새로 올릴 페이지와 교체할 희생 프레임을 찾는 알고리즘, 페이지 교체 알고리즘이다. 아래의 페이지 교체 알고리즘 예시들은 각 프로세스에 프레임 3개를 주고, 지역성 교체를 가정한 것이다. FIFO(first in first out) 가장 간단한 알고리즘으로, 메모리에 올라온 지 가장..
가상 메모리 가상 메모리 다중 프로그래밍을 실현하기 위해서는 많은 프로세스들을 동시에 메모리에 올려두어야 한다. 가상메모리는 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법 이며, 프로그램이 물리 메모리보다 커도 된다는 주요 장점이 있다. 장점 사용자 프로그램이 물리 메모리보다 커져도 된다. 즉, 메모리 크기의 제약으로부터 자유로워진다. 각 사용자 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행할 수 있다. 이에 따라 응답 시간은 늘어나지 않으면서 CPU 이용률과 처리율이 높아진다. 프로그램을 메모리에 올리고 스왑 하는데 필요한 입/출력 횟수가 줄어든다. 따라서 프로그램들이 보다 빨리 실행된다. 가상 메모리 파일의 공유를 쉽게 해 주고 공유 메모리 구현을 가능하게 한..
메모리 관리 전략, 가상 메모리 메모리관리배경 다수의 프로세스들을 사용하면서 메모리 관리의 중요성은 대두되었다. 멀티 프로세스 환경에서는 보다 좋은 성능을 위해서 다수의 프로그램을 주 메모리에 올려놓아야 한다. 이때 메모리에 어느곳에 프로그램을 넣어주고, 다시 하드디스크로 보내는 역할을 운영체제에서 담당한다. 그렇기 때문에 적절한 메모리 위치에 프로그램을 적재하지 못할 경우 문제가 발생하게된다. 이 뿐만 아니라 메모리가 변경될 때 어떻게 하면 더 효율적이고 메모리 낭비를 방지 할 수 있는가에 대한 문제를 해결하기 위해 메모리 관리를 해야한다. 메모리 교체 방식 swapping 메모리가 교체되는 시기 프로세스들이 cpu를 사용하기위해 스케쥴링을 통해 점유하는 것과 비슷한 방식으로 메모리도 빠르게 교체되면서 사용 할 수 있다. 예를 들면 ..
동기 비동기(프로세스 동기화) 동기(synchronous : 동시에 일어나는) - 동기는 말 그대로 동시에 일어난다는 뜻입니다. 요청과 그 결과가 동시에 일어난다는 약속인데요. 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 합니다. -> 요청과 결과가 한 자리에서 동시에 일어남 -> A노드와 B노드 사이의 작업 처리 단위(transaction)를 동시에 맞추겠다. 1. A의 계좌는 10,000원을 뺄 생각을 하고 있다. 2. A의 계좌가 B의 계좌에 10,000원을 송금한다. 3. B의 계좌는 10,000원을 받았다는 걸 인지하고, A의 계좌에 10,000원을 받았다고 전송한다. 4. A, B 계좌 각 각 차감과 증가가 동시에 발생하였다. A의 계좌에서 B라는 계좌에 돈을 넣을때 A와 B는 같은 일을 했습니..
프로세스 상태, CPU 스케줄러 프로세스 상태 running state : 현재 cpu에서 실행 상태 ready state : cpu에서 실행 가능한 상태(실행 대기 상태) block state : 특정 이벤트 발생 대기 상태( ex : 프린팅 완료) 스케줄러란 스케줄러는 레디 큐에 존재하는 프로세스들을 특정한 우선순위 기반으로 CPU를 할당받게 해주는 역할을 함 링크드 리스트, 해쉬 리스트, 비트 맵, 레드 블랙 트리(리눅스)로 구현 스케줄링 목적 처리량 최대화 - 스케줄링 규칙은 단위 시간당 가능하면 많은 프로세스가 서비스를 받을 수 있도록 해야 함 자원 활용도 최대화 - 시스템 자원을 부지런히 사용 해야 함 무기한 연기 회피 - 프로세스들이 서비스를 받으려고 한 없이 대기하면 안됨 우선순위 강화 - 시스템이 프로세스에 우선순위를 ..
프로세스(PROCESS) , 스레드(THREAD) #2 단일 스레드 / 멀티 스레드 운영체제의 지원 여부에 따라 단일 스레드 , 다중 스레드로 나뉠 수 있다 프로세스에 하나의 제어 모델이 있으면 단일 스레드이며, 프로세스가 다수의 제어 스레드를 가진다면 다중 스레드 모델이다. 단일 스레드 하나의 프로세스에서 하나의 스레드 실행 하나의 레지스터와 스택으로 표현 멀티 스레드 프로그램을 다수의 실행 단위로 나누어 실행 프로세스 내에서 자원을 공유하여 자원 생성과 관리의 중복을 최소화 서버가 많은 요청을 효율적으로 수행 할 수 있는 환경 제공 각각의 스레드가 고유의 레지스터와 스택으로 표현됨 단일 스레드 / 멀티스레드의 장단점 단일 스레드 장점 1. 자원 접근에 대한 동기화를 신경 쓰지 않아도 된다. 2. 문맥 교환(context switch) 작업을 요구하지 않는..