경쟁 상태(Race Condition)란 ? 1. 경쟁 상태(Race Condition) 공유 자원에 대해 여러 프로세스가 동시에 접근을 시도할 때, 타이밍이나 순서 등이 결과 값에 영향을 줄 수 있는 상태를 의미한다. 공유 자원에 여러 프로세스가 동시에 접근할 때 자료의 일관성을 해치는 결과가 나타날 수 있다. 2. 경쟁 상태(Race Condition) 가 발생하는 경우 ✔ 커널 코드 실행 중에 인터럽트가 발생한 경우 커널 모드에서 데이터를 로드 하여 작업을 하던 도중 인터럽트가 발생하여 같은 데이터를 조작하는 경우에 발생할 수 있다. 커널이 가진 전역변수는 모든 프로세스의 공유물이므로 경쟁상태의 가능성이 있다. ✔ 프로세스가 시스템 콜(System call)을 하여 커널 모드로 진입해서 작업을 수행..
데드락(Deadlock, 교착 상태) 이란? 1. 데드락(Deadlock, 교착상태) 프로세스는 실행을 위해 여러 자원을 필요로 한다. CPU, 메모리, 파일 등등 여러 자원을 사용하여 프로세스가 실행된다. 그러나 어떤 자원은 갖고 있으나 다른 자원을 갖지 못할 경우 대기 상태에 들어가서 기다려야 한다. 자원은 한정되어 있는데 여러 프로세스가 같이 동작하는 상황이여서 이러한 상황이 발생하게 된다. 그러므로 운영체제는 이러한 자원을 프로세스에게 잘 할당을 해주어야 한다. 만약 운영체제가 잘 할당을 해주지 못하면 모든 프로세스가 자원을 가지려고 대기하는 교착상태에 빠질 수 있다. 즉, 데드락(Deadlock, 교착상태)이란, 일련의 프로세스들이 서로가 가진 자원을 기다리며 block 되어 더 이상 진행이 될..
프로세스(Process) ? - 프로세스란 실행 중에 있는 프로그램(Program)을 의미한다. - 스케줄링의 대상이 되는 작업(Task)와 같은 의미로 쓰인다. - 프로세스 내부에는 최소 하나의 스레드(Thread)를 가지고 있는데, 실제로는 스레드 단위로 스케줄링을 한다. - 하드디스크에 있는 프로그램을 실행하면, 실행을 위해서 메모리 할당이 이루어지고, 할당된 메모리 공간으로 바이너리 코드가 올라 가게 된다. 이 순간부터 프로세스라 부른다. 프로세스 상태(Process state) 1. Running state CPU에 의해서 실행되고 있는 상태 2. Ready State CPU 할당을 받으면 바로 Running State로 들어가 실행할 수 있는 상태(CPU를 사용하지 않고 있다.) 3. Bloc..
운영체제(OS; Operating System)란 컴퓨터 시스템은 대개 네 가지 구성요소인 하드웨어, 운영체제, 응용 프로그램 및 사용자로 구분할 수 있다. 하드웨어는 중앙 처리장치(CPU), 메모리 및 입출력(I/O) 장치로 구성되어, 기본 계산용 자원을 제공한다. 응용 프로그램인 워드 프로세서, 스프레드시트, 컴파일러, 웹 브라우저 등은 사용자의 계산 문제를 해결하기 위해 이들 자원이 어떻게 사용될지를 정의한다. 운영체제는 다양한 사용자를 위해 다양한 응용 프로그램 간의 하드웨어 사용을 제어하고 조정한다. 즉, 하드웨어를 관리하고 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다. 운영체제의 ..
애노테이션(@, Annotation)이란? 사전적 의미로는 주석을 의미하며, 프로그램에 대한 데이터를 제공하는 메타데이터의 한 종류이다. 소스코드에 대한 문서를 따로 만들기 보다는 소스 코드와 문서를 하나의 파일로 관리하는 것이 더 낫다고 생각했다고 한다. 그래서 개발 시 설명이 필요한 부분의 경우 /**~*/ 안에 해당 로직에 대한 설명을 달고 이러한 주석으로 부터 HTML 문서를 생성하는 프로그램(javadoc.exe)을 만들고 사용했었다. 이 기능을 응용하여 프로그램 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것이 애노테이션이라고 한다. 예를들어, 자신이 작성한 소스코드 중에서 특정 메서드만 테스트하기를 원한다면, 다음과 같이 '@Test'라는 애너테이션을 메서드 앞에..
열거형(enums)란? 열거형 이란 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 유용하다. 원래 자바는 C 언어와 달리 열거형이라는 것이 존재하지 않았으나 JDK1.5부터 새로 추가되었다. 자바의 열거형은 C 언어의 열거형 보다 더 향상된 것으로 열거형이 갖는 값 뿐만 아니라 타입도 관리하기 때문에 보다 논리적인 오류를 줄일 수 있다. class Card{ static final int CLOBER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int SPADE = 3; static final int TWO =0; static final int THREE = 1; static f..
프로세스(Process)와 쓰레드(Thread) 프로세스란 '실행중인 프로그램(Program)'이다. 프로그램을 실행하면 OS로 부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 프로세스는 프로그램을 수행하는데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있으며 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드이다. 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재하며, 둘 이상의 쓰레드를 가진 프로세스를 '멀티쓰레드 프로세스(Multi-threaded process)' 라고 한다. 쓰레드(Thread) 구현과 실행 쓰레드를 생성하는 방법은 크게 두가지가 있다. Thread 클래스를 사용 Runnable 인터페이스를 사용 Runnable 과 Thread 모두..
예외 클래스의 구조 Throwable 클래스를 상속받는 클래스는 Error와 Exception 이 있는데 모든 예외의 최고 조상 클래스는 당연히 Exception 이다. java.lang.Throwable class가 Java Exception의 Root Class이다. Throwable 클래스에 선언되어 있고, Exception 클래스에서 오버라이딩한 메소드는 10개가 넘으며, 가장 많이 사용되는 메서드는 다음과 같다. getMessage() 예외 메시지를 string 형태로 제공받는다. 예외가 출력되었을때 어떤 예외가 발생되었는지 확인할 때 매우 유용하다. 메시지를 활용하여 별도의 예외 메세지를 사용자에게 보여주려고 할 때 좋다. toString() 예외 메세지를 String 형태로 제공 받는다. g..
- Total
- Today
- Yesterday
- 자료구조와알고리즘 23강
- 리스트함축
- CS 스터디
- 자료구조
- 자바
- Greedy sort
- SW
- 알고리즘
- It
- 이진탐색
- 리스트2
- CS.
- 코드업 기초
- 리스트 복사
- 프로세스 주소공간
- 정렬
- CS
- 네트워크
- 데이터베이스
- 이차 리스트
- 완전탐색
- 운영체제
- 리스트
- 파이썬
- https
- 프로그래머스강의
- 스터디
- 보험
- 프로그래머스
- 연결리스트활용
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |