목록전체 글 (461)
코드네임 :

(a) 프로세스가 물리 메모리보다 큰 경우설명:하나의 프로세스가 실행되려면 물리 메모리에 적재되어야 합니다. 그러나 프로세스가 사용하는 메모리 크기가 물리 메모리의 크기보다 클 경우, 프로그램을 한 번에 실행할 수 없습니다.(b) 여러 프로세스들의 총 크기가 물리 메모리보다 큰 경우설명:여러 프로세스가 동시에 실행되려면 모두 물리 메모리에 적재되어야 합니다. 하지만 이 프로세스들의 총 메모리 요구량이 물리 메모리보다 큰 경우, 모든 프로세스를 동시에 실행할 수 없습니다.⬇️[ 가상 메모리의 필요 ]: 물리메모리 크기 한계를 극복하는 해결책!! 가상 메모리는 프로그램의 일부(페이지 또는 세그먼트)를 물리 메모리에 적재하고, 나머지는 하드 디스크와 같은 보조 기억 장치에 보관합니다. 실행 중 필요한 부분만 ..

[ 페이징과 세그먼테이션의 장단점 취합 ]페이징 단정 : 내부 단편화 발생 가능페이징 장점 : 메모리 효율적 사용 + 작업크기가 동일하여 다양한 알고리즘을 개발세그먼 단점 : 외부 단편화 발생 가능세그먼 장점 : 가변적인 데이터 구조와 모듈 처리, 공유와 보호 자원 관리⬇️외부 단편화 문제를 제거하면서 할당 과정을 쉽게 해결

[ 페이징 ]ㄴ 고정크기, 분할메모리 할당 (아래 퀴즈)물리메모리 주소공간 최대크기 : 2^(비트크기)프로세스의 주소공간 크기 : 2^(비트크기)한 프로세스의 최대 페이지 개수 : 프로세스주소공간크기/페이지크기페이지 테이블 크기 : 비트 x 최대 페이지 개수 [ 페이징 구현 ]

세그멘테이션ㄴ 가변크기, 분할메모리 할당 ㄴ 외부 단편화 발생 가능(세그먼트는 프로그램을 구성하는 논리적 단위, 세그먼트마다 크기 다름, 코드/데이터/스택/힙 세그먼트 존재): 프로세스를 논리 세그먼트들로 나누고, 각 논리 세그먼트를 물리 메모리(물리 세그먼트)에 할당하는 메모리 관리 기법 [ 세그멘테이션의 구현 ]

메모리 할당 : 운영체제가 새 프로세스를 실행시키거나, 실행중인 프로세스가 메모리를 필요로 할 때, 물리 메모리 할당 [ 메모리 할당 기법 ]1. 연속 메모리 할당 : 프로세스 별로 연속된 한 덩어리의 메모리 할당- 고정 크기 할당 - 가변 크기 할당2. 분할 메모리 할당 : 프로세스에게 여러 덩어리의 메모리 할당 - 고정 크기 할당 : 페이징 - 가변 크기 할당 : 세그멘테이션 [ 연속 메모리 할당 구현 시 ]1. 하드웨어 지원 - CPU의 레지스터 필요 ㄴ base 레지스터 : 현재 CPU가 실행중인 프로세스에게 할당된 물리 메모리의 시작 주소 저장 ㄴ limit 레지스터 : 현재 CPU가 실행중인 프로세스에게 할당된 메모리 크기 저장 - MMU 필요 (가상주소를 물리주소로 변환 역할)2. ..

메모리: 실행하고자 하는 프로그램 코드와 데이터 적재(CPU는 메모리에 적재된 코드와 데이터를 처리 - 프로그램을 실행시키지는 못함) [ 운영체제에 의해 메모리 관리가 필요한 이유 ]1. 메모리 is 공유자원2. 메모리 has to be 보호ed3. need 메모리의 용량 한계 극복4. for 메모리의 효율성 증대 MMU : logical 주소(논리적 가상주소)에서 physical 주소(물리적 주소)로 바꿔주는 역할 ASLR : 주소공간 랜덤 배치 (실행할때마다 이들의 논리 주소가 바뀌게 하는 기법, 코드나 전역변수가 적재되는 데이터 영역의 논리 주소는 바뀌지 않음)
MainActivity.java4. 버튼 클릭 리스너 설정btnNewActivity.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this, SubActivity.class); intent.putExtra("name", editText.getText().toString()); intent.putExtra("age", Integer.valueOf(editText2.getText().toString())); startActivity(intent); }});s..