목록분류 전체보기 (181)
초보개발자 긍.응.성
1541번 잃어버린 괄호 문제출저: https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. www.acmicpc.net StringTokenizer와 Integer.parseInt를 이용해 해결한 문제 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringToken..
수행모드 운영체제는 최소한 두가지의 수행 모드를 가진다. 권한을 가진 정도에 따라 수행 모드가 나뉘게되는데 권한을 덜 가진 모드를 보통 사용자 모드(user mode), 더 높은 권한을 가진 모드를 커널 모드(kernel mode), 시스템 모드(system mode), 제어모드(control mode) 등으로 부른다. 수행모드를 두 가지로 나누는 이유는 사용자 프로그램의 간섭으로 부터 운영체제 및 프로세스 제어블록과 같은 주요 운영체제 테이블을 보호할 필요가 있기 때문이다. 프로세서가 현재 어느 모드에서 수행되고 있는지는 수행모드를 표현하는 프로그램상태워드(PSW)로부터 알 수 있다. 이 비트는 특정 사건에 따라서 변한다. 주로 사용자가 운영체제 서비스를 호출하거나 인터럽트가 운영체제의 한 경로의 수행..

운영체제는 프로세서에 의해 수행되는 프로세스들을 스케줄하여 Dispatch하고, 프로세스들에게 자원을 할당하며, 사용자 프로세스의 기본적인 서비스 요청에 응답한다. 운영체제는 프로세스가 사용하는 시스템 자원들을 관리하는 개체로 볼 수 있다. 앞서 말한것 처럼 운영체제가 프로세스와 자원들을 관리하기 위해서는 각 프로세스에 대한 현재 상태를 나타내는 정보를 가지고 있어야만 한다. 이러한 정보는 개체에 대한 테이블로 구성해서 유지한다. 운영체제는 메모리 테이블, 입출력 테이블, 파일 테이블, 프로세스 테이블을 가진다. 프로세스 제어 구조 - 프로세스 위치 프로세스는 각각의 프로세스 이미지를 가진다. 프로세스 이미지는 데이터, 프로그램, 스택, PCB를 가진다. 운영체제는 프로세스의 항목들을 주 프로세스 테이블..

단일 처리기 컴퓨터는 임의 시점에 단 하나의 프로세스만을 수행 상태로 수행할 수 있다. 그렇기 때문에 주 메모리에 적재된 프로세스들은 수행상태 이외에도 다른 상태들을 가진다. Dispatcher (디스패처) Dispatcher는 운영체제가 한 프로세스로 부터 다른 프로세스로 교체하기 위한 프로그램이다. 시간이 만료되거나 Block 혹은 종료된 프로세스로 부터 준비중인 프로세스를 수행상태로 만들 때 항상 Dispatcher 프로세스가 수행된다. 2-상태(two-state) 상태 모델 2상태 모델에서는 프로세스의 상태를 비수행(Not Running) 상태와 수행(Running) 상태로 나눈다. 운영체제가 새로운 프로세스를 생성할 때, 그 프로세스에 대한 프로세스 제어블록을 생성하고 비수행 상태로 초기화 시킨..
프로세스(Process) 의 정의는 여러가지인데 수행 중인 프로그램 컴퓨터 상에 수행 중인 프로그램의 인스턴스 프로세서에 할당되어 수행될 수 있는 개체 (entity) 명령들의 순차 수행, 현재 상태, 연계된 시스템 자원들의 집합 등에 의해 특징지어지는 활성화단위 (a unit of activity) 로 정리할 수 있다. 프로세스의 두 필수적인 요수는 프로그램 코드와 그와 연계된 데이터의 집합이다. 추가적으로 프로그램이 수행 중 특정 시점에 프로세스를 식별하기 위한 요소들이 있다. 식별자, 상태, 우선순위, PC(Program Counter) 등이 존재하며 이러한 정보들은 프로세스 제어블록(PCB)에 존재한다. 프로세스 제어블록은 운영체제에 의해 생성되고 관리되며 자료구조로 저장된다. PCB는 수행 프로..

동적으로 추가할 수 있는 기능들을 덧붙여야 하는 상황에 사용하는 Decorator Pattern에 대해 알아보자. 문제점 이해를 위해 간단한 예시로 카페에서 음료를 주문 받는다고 하자. 음료중엔 아메리카노, 라떼 등을 포함해 많은 종류의 음료가 존재할 것이다. 이는 Beverage라는 추상클래스를 만들고 이를 상속하는 여러 종류의 음료를 생성하여 표현할 수 있다. 음료에는 휩추가, 시럽 추가등의 첨가물을 추가할 수 있다. 이러한 모든 경우에 대해 생겨날 수 있는 조합의 음료들을 정의한다면 중복되는 코드가 많아진다는 문제점이 있다. 이러한 문제를 해결하기 위해 abstract class인 Beverage에 속성으로 첨가물의 추가여부에 대한 변수를 가지게 만들어 중복되는 클래스의 생성을 줄일 수 있다. 하지..