📕Virtual memory Main memory를 보조 기억장치에 cache로 사용하는 기술이다. Programs는 main memory를 공유한다. 프로그램들은 자주 사용되는 코드와 데이터를 저장하는 개인 가상 메모리 주소 공간을 얻습니다. 가상 주소 공간은 프로그램의 주소 공간을 물리적 주소로 변환하여 다른 프로그램으로부터 보호됩니다. Page 가상 메모리 블록 page fault : 가상 메모리 miss를 의미한다. 메모리에는 없고, virtual address에만 있는 경우 Processor는 가상 주소를 생산한다. 가상 주소는 CPU와 OS에 의해 물리적 주소로 변환됩니다. 위의 과정을 address mapping 또는 address translation이라고 부릅니다. 📕Virtual Add..
🔎수강신청 시 활용되는 수강 꾸러미를 위한 DBMS를 구현 사용된 데이터는 2022년 2학기 글로벌SW융합전공으로 개설된 과목을 사용했다. mysql을 사용한 첫 프로젝트라 굉장히 좀 재밌어보였다. php를 이용해서 웹과 mysql을 연결했다. 위 사진은 시작 화면이다. 여기서 각 버튼을 누를때마다 특정 작업을 수행해야 한다. 📕웹 사이트 주요 기능 📗수강 꾸러미 담기 입력받은 학번과 교과목 코드를 통해서 해당 학번의 수강꾸러미에 과목코드에 해당하는 과목을 수강꾸러미에 담는다. 만약 이미 담은 과목코드를 또 수강 꾸러미에 담을 경우 📗수강 꾸러미에서 제거 입력받은 학번과 교과목 코드를 이용해서 해당 학번의 수강 꾸러미에서 입력받은 과목코드에 해당하는 과목을 수강꾸러미에서 제거하면 된다. 만약 존재하지 않..
📕Associative Caches Fully associative cache 모든 memory에 block이 캐시에 아무 곳이나 위치할 수 있다. block들은 아무 공간에 위치할 수 있기에, 다른 Cache방법보다 search가 어렵습니다. Set associative cache는 direct mapped와 fully associative cache의 중간 개념이라고 생각하면 쉽습니다. n-way set associative : 주어진 set안에 n개의 데이터가 존재합니다. 데이터들은 지정된 공간중 아무 곳이나 위치할 수 있습니다. set-associative cache에서 memory block (Block number) modulo (Number of sets in the cache) associ..
📕Cache SRAM의 종류중 하나면서, 작고 빠른 것이 특징입니다. Processor와 memory 사이에 위치하고 있으며, L1,L2,L3 Cache로 구성되어 있습니다. Processor는 Cache에서 가장 먼저 data를 찾습니다. 없으면 memory로 이동 Cache를 간단하게 구조화한 사진입니다. Processor가 cache에 X를 요청합니다. Cache에서 X가 있는지 없는지를 체크합니다. 있다면 Cache -> Processor로 X를 전달해주고 이때를 hit라고 합니다. 여기서 우리는 그 정보가 어디있는지도 알아야 합니다. 없다면 Cache는 Memory에서 X를 찾아서 Processor에게 전달해줍니다. Cache에 요청한 data가 없다면 그 때를 miss라고 합니다. 📕Direc..
✋목차 Principle of Locality Temporal locality Spatial locality Memory Hierarchy 📕Principle of Locality Temporal locality locality in time 한번 사용했던 것을 다시 사용 예를 들면 반복문 안에서 사용되는 instruction Spatial locality locality in space 한번 사용 했던 것 근처를 사용 예를 들면 순서대로 instruction에 접근하는 것이나, 배 열등이 있다. 코드를 예를 들어서 설명하면 이해가 쉬울 것이다. sum=0; for( i=0; i
📕문제 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑 루피'라 불리는 검은색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주인공, 링크는 지금 도둑루피만 가득한 N x N 크기의 동굴의 제일 왼쪽 위에 있다. [0][0] 번 칸이기도 하다. 왜 이런 곳에 들어왔냐고 묻는다면 밖에서 사람들이 자꾸 "젤다의 전설에 나오는 녹색 애가 젤 다지?"라고 물어봤기 때문이다. 링크가 녹색 옷을 입은 주인공이고 젤다는 그냥 잡혀있는 공주인데, 게임 타이틀에 젤다가 나와있다고 자꾸 사람들이 이렇게 착각하니까 정신병에 걸릴 위기에 놓인 것이다. 하여튼 젤다...아니 링크는 이 동굴의 반대편 출구, 제일 오른쪽 아래 칸인 [N-1][N-1]까지 ..
📕문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 📕입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 📕출력 수빈이가 동생을 찾는 가장 빠른 시간을 출력한다. 🔎문제 해석 가장 빠르게 갈 수 있는 경로를 찾는 문제면 BFS..
📕문제 알고스 팟 운영진이 모두 미로에 갇혔다. 미로는 N*M 크기이며, 총 1*1 크기의 방으로 이루어져 있다. 미로는 빈 방 또는 벽으로 이루어져 있고, 빈 방은 자유롭게 다닐 수 있지만, 벽은 부수지 않으면 이동할 수 없다. 알고스 팟 운영진은 여러 명이지만, 항상 모두 같은 방에 있어야 한다. 즉, 여러 명이 다른 방에 있을 수는 없다. 어떤 방에서 이동할 수 있는 방은 상하좌우로 인접한 빈 방이다. 즉, 현재 운영진이 (x, y)에 있을 때, 이동할 수 있는 방은 (x+1, y), (x, y+1), (x-1, y), (x, y-1)이다. 단, 미로의 밖으로 이동할 수는 없다. 벽은 평소에는 이동할 수 없지만, 알고스팟의 무기 AOJ를 이용해 벽을 부수어 버릴 수 있다. 벽을 부수면, 빈 방과 동..
📕프래그먼트 액티비티처럼 동작하는 뷰 클래스 액티비티의 사용자 인터페이스를 여러 개의 조각으로 나눈 것 여러 개의 프래그먼트를 조합하여 액티비티가 출력하는 한 화면의 UI를 표현할 수 있음. xml 상에서는 FrameLayout 태그 안에서 코드를 작성함. 📕프래그먼트 생명주기 onAttach() -> onCreate() -> onCreateView() -> onViewCreated() -> onStart() -> onResume() 📕Fragment 소스 코드 파일을 생성하면 자동으로 onCreateView()가 생성됨 자동 호출되며 반환한 View 객체가 화면에 출력됨. 이렇게 하나의 화면에서 여러 개의 프래그먼트를 조합하여 UI를 표현할 수 있다. 📕MainActivity 코드 FragmentTra..