전체 글67 4. Collections.sort()와 Arrays.sort() 알고리즘 문제를 풀던 중, 한 가지 의문을 해결한 것에 대해 적어 놓으려고 한다. map이라는 클래스를 하나 정의하고 ArrayList 타입의 객체를 생성해서 사용하던 중 Collections.sort()를 사용하려고 했다. Collections.sort() 제네릭 타입에는 map 객체를 넣었는데, 위와 같이 에러가 발생하였다. Integer나 String 등을 넣으면 괜찮은데 왜이럴까? 당연히 String클래스에 equals()를 오버라이딩 한 것과 같은 이유이다. Integer등의 클래스에는 이미 sort()를 사용할 수 있게끔 조건을 만족 시켜 놓았다. 그렇다면 어떤 조건이 있어야 사용이 가능할까? 알아보기 위해서 Collections클래스의 sort()메소드를 살펴 보았다. public static 2023. 1. 17. 5. 프로세스 관련 시스템콜 & IPC 프로세스와 관련해서 네 가지의 중요한 시스템콜에 대해서 정리한다. 프로세스 생성 우선 부모 프로세스가 자식 프로세스를 어떤 방식으로 생성하고, 어떠한 관계를 가지게 되는 지 알아봐야 한다. 부모 프로세스가 자식 프로세스를 어떤 방식으로 생성하는 지에 대해 가장 중요한 것은 복제생성이다. 부모 프로세스는 자신의 주소공간, PC register 등과 같은 정보들을 복제하여 자식 프로세스를 생성한다. 이와 같은 방식으로 생성되기 때문에 트리구조를 가지게 된다. 자식 프로세스의 생성은 굳이 두 가지로 나눠보자면, 1. 부모를 그대로 복사한다. 2. 복사한 자식 프로세스에 새로운 프로그램을 덮어 씌운다. 이와 같은 방식이라고 할 수 있을 것이다. 그렇다면 1번과 2번을 수행하는 시스템콜이 무엇이 있는 지에 대해 .. 2022. 12. 28. 4. 프로세스(2) 프로세스 스케줄러, 프로세스의 상태, 스레드에 대해 정리한 내용이다. 스케줄러 프로세스를 스케줄링 하는 스케줄러의 종류들이 세 가지가 존재한다. 그 전에 프로세스 스케줄링을 하기 위한 Queue도 아래와 같이 세 가지가 존재한다. Job Queue: 현재 시스템 내에 있는 모든 프로세스의 집합이다. Ready Queue: 현재 메모리 내에 있으면서 CPU를 선점하기를 기다리는 프로세스의 집합이다. Device Queue: I/O 디바이스의 처리를 기다리는 프로세스의 집합이다. 위 Queue들에 프로세슬르 넣고 빼주는 역할을 담당하는 것이 바로 스케줄러이다. 스케줄러에도 아래와 같이 세 가지가 존재한다. 단기 스케줄러(CPU Scheduler) 어떤 프로세스를 다음번에 Running시킬 지 결정한다. CP.. 2022. 12. 26. 3. 예외와 예외처리 에러와 예외 자바에서 에러(Error)와 예외(Exception)은 분명한 차이를 가지는 용어이다. 에러(Error)는 코드로 수정할 수 없는 심각한 오류를 뜻한다. 예외(Exception)는 코드로 수정할 수 있는 미약한 오류를 뜻한다. 즉, 예외는 프로그래머가 코드를 적절하게 작성해주면 방지할 수 있는 영역인 것이다. 예외클래스의 계층구조 예외나 에러와 관련된 최상위 클래스인 Throwable로부터 상속받은 구조이다. Error는 시스템 레벨에서 발생하는 것이다. Exception 클래스들은 외적인 요인으로 인해 발생하는 것들이 대부분이다. (e.g. 파일없음, 프로그래머 실수) 여기서 중요한 점은 RuntimeException인데 해당 예외는 프로그래머의 실수로 발생하는 예외라고 할 수 있다. 그렇.. 2022. 12. 15. 이전 1 2 3 4 5 6 7 8 ··· 17 다음