A. JVM이란 무엇인가? A-1. Java의 탄생 배경 1990년대는 인터넷의 태동기였고 인터넷 네트워크 환경을 고려한 기술들이 많이 나오기 시작했습니다. 1996년에 출시된 Java 역시, 네트워크 환경에서 동작하는 기기들을 고려한 어플리케이션 개발 환경을 만들기 위해 디자인 되었습니다. 오라클 공식문서에 따르면, "Java는 네트워크를 통해 소프트웨어의 컴포넌트들을 안전하게 전송하고 실행할 수 있도록 돕는다" 라는 이야기가 나오는데요. 여기서 "네트워크 환경에서 동작하는 기기를 고려하는 개발 환경" 라는 의미를 생각해볼 수 있습니다. 네트워크 환경에서 동작하는 개발 환경. 1️⃣C/C++ 예를들어서, 기존 C/C++은 소스 코드를 각 기계에 직접 컴파일을 해서 실행시켜야 했습니다. 소스 코드를 💾저..
Swift나 Python같이비교적 고급언어들로 작성하다가, 과제를 위해 C언어로 오니 매우 불편한점이 있다.특히 메모리로 접근했을때, 예상치못한 오류들이 생긴다는점.. char* 배열의 값에서 에서 다른 char* 배열값에 값만 복사하려고하면 에러가났다. 처음 시도한 코드a[1] = b[1]; expected case : b[1]에 있는 값을 복사해서 a[1]로 옮겨라.actual case: b[1]에 있는 주소값을 복사해서 a[1]로 옮겨라. 처음에는 당연히 값이 잘 옮겨지겠지 라고 생각하고 프로그램을 실행해봤는데,어떤값이 계속 지워지는현상을 보았다.... 하나하나 프린트를 찍어보면서 디버깅을해보면서 알아낸것은" 값을 옮기는게아니라 주소를 옮기는거였구나.. " 따라서, 이럴때는 strcpy라는 C언어 ..
페이징 계산은 운영체제 공부 중 중요하게 다뤄지는 내용 중 하나이다. 따로 포스팅하여서 정리하도록한다. 1. 페이징이 무엇인가 페이징은 보통 메모리 스페이스를 잘게 나눠서 메모리에 저장하는 가상화 방식중 하나이다. 2. 페이징을 왜쓰는가 내가 저장하고싶은 메모리는 10KB인데, 남은자투리메모리공간은 4KB, 7KB라고해보자. [ 점거 | 4KB FREE공간 | 어떤프로세스가 점거 | 7KB FREE 공간 ] 그럼 10KB가 들어갈 자리가 없다. 그걸 방지하기위해서 나온 기술이 페이징기술. 프로세스 메모리 공간을 모두 일정한 페이징단위로 나눠서, 분배해주는방식이다. 그럼 사용자입장, 가상화부분에서는 페이지가 메모리에 순서대로 잘 정리되어있다고생각하고 예를들어 이렇게.. int a[] = {1,2,3,4,5..
잘 사용하던 SSD가 갑자기 맛이 갔다! 정확한 이유는 모르겠지만 불가하지만, 내가 했던 행동을 되짚어봐서 문제가 될 수 있는 부분을 예상하자면.. SSD에 잘못된 명령어를 요청해, 크래쉬가 나서 SSD 펌웨어에 손상이 갔다!-> 즉, 컴퓨터에서 SSD를 SSD라 인식하지 못한다! 이럴경우 해볼 수 있는 해결책1) SSD를 복구시도해본다.2) SSD 툴을 이용해 복구해본다. ( http://ocz.com/ap-en/download/ssd-utility)
풀이법. 필요한 최소의 행성계 진입/이탈 횟수를 구하는 프로그램. 1) 진입과, 이탈을 최소로 해야하며, 진입/이탈을 최소화할 수 있는 루트는 묻지않았다. -> 즉, 진입과 이탈을 하는 횟수만 계산하면됨. 2) 진입/이탈을 하는 조건은 시작점->도착점을 지나면서 원을 몇개의 원을 이탈(시작점기준) 몇개의 원을 진입(도착점기준)이다.-> 다시 말하자면 시작점에서 도착점으로 갈때 반드시 거쳐야하는 원은 몇개인가, 시작점과 도착점이 몇개의 원에 둘러쌓여있는것인가?를 묻는다. ex) 일반적인경우2개의 원에 둘러쌓인 시작점, 2개의 원에 둘러쌓인 도착점.시작점에서 2개의 원을 이탈, 도착점에 도달하기위해 2개의 원에 진입.* 다른 행성들이 어떻든 상관없다. 문제에서 묻지않았다. 3) 겹칠경우, 교차할경우는 문제에..