본문 바로가기

전체 글

(426)
Call By Value & Call By Reference 이번에 정리할 내용은 CBV , CBR이다. 정말 중요한 내용이니 열심히 공부하자 Call By Value와 Call By Reference는 둘 다 함수 호출 방식을 의미한다. 다만 함수의 인자(매개변수)로 전달되는 대상에 차이가 있다. Call By Value : 함수 호출시 단순히 값(Value)만 전달하는 형태의 함수호출 Call By Reference : 함수 호출시 메모리 접근에 사용되는 주소 값을 전달하는 형태의 함수호출 여태 우리가 정의해왔던 대부분의 함수들은 값을 전달하는 형태로 Call By Value였다. 이번엔 Call By Reference형태의 함수호출을 이용한 예제를 살펴보자! 5행에서 선언한 함수를 주목하자 , 매개변수와 몸체부를 보자 전달 인자값으로 *ptr1과 *ptr2를..
포인터 배열 우리는 여태껏 기본자료형의 변수를 요소로 지니는 배열들만 사용해왔다. 하지만 포인터 변수 또한 변수이니 이를 대상으로도 배열선언이 가능하다. 그게 우리가 지금 공부할 포인터 배열 이고 시작하자! 포인터 배열 : 포인터 변수로 이루어진 , 그래서 주소값의 저장이 가능한 배열포인터 배열의 선언방식ex) int *arr1[5] // 길이가 5인 int형 포인터배열 arr1 double *arr2[30] // 길이가 30인 double형 포인터배열 arr2 이와같이 우리가 평소 포인터를 선언하는 방법과 배열을 선언하는 방법을 짬뽕한 형태다! 선언에 대해서는 정리할것이 많지않으니 바로 예제로 들어가보겠다. 6행에서 int형 변수 3개를 선언과 동시에 초기화7행에서 길이3의 int형 포인터 배열을 선언하고 각 배열..
Fake it Till you make it Fake it Till you make it
시분할 처리 시스템 , 분산 처리 시스템 시분할 처리 시스템 : 각각의 작업들에게 일정한 CPU 시간만큼을 차례로 할당하는 라운드 로빈 스케줄링을 사용하는 방식으로써 , 각각의 컴퓨터 사용자들은 실제로 자신만이 컴퓨털르 사용하고 있는 듯한 느낌을 주는 시스템. - 여러 사람이 공동으로 CPU 사용이 가능- 자원 제어에 대한 대부분의 책임을 OS에 전가시킴으로써 OS를 복잡하게함- OS는 기억장치에 복수 개의 프로그램을 동시에 유지하는 문제나 프로그램을 위한 주기억장치나 보조기억장치를 관리하고 ㅈ어하는 책임을 가져야한다. 즉 , 기억 장치 관리 기법이나 디스크 스케줄링 정책 필요 -여러 사용자에 대한 공정한 자원 공유를 보장하기 위해 어떤 사용자에게 CPU를 사용하게 할 것이지에 대한 CPU 할당 시간을 정의하여 스케줄링 해야함.- 실행 중인 프..
다중 처리 시스템 다중 처리 시스템 : 프로그램을 수행할 수 있는 CPU를 2개 이상 두고 각각 그 업무를 분담하여 처리하는 방식 장단점 정리 - CPU를 여러개 사용하여 프로그램의 처리 속도와 신뢰성을 높임 - 한쪽의 CPU가 고장나더라도 여분의 CPU를 이용하여 업무처리를 계속 할수있기 때문에 시스템의 안정성이 높음- OS는 여러 CPU간의 기억 장치 공유를 어떻게 지원할 것이며 , 여러 CPU의 사용을 어떻게 스케쥴링 할것인가를 결정해야됨 - 신뢰성과 병행 계산 , 최적의 연결 기법 같은 자원을 요구하는 CPU들간의 경쟁을 제어하는 문제들 또한 고려해야됨 다중 처리 시스템과 비슷한 시스템 운용 방법으로는 듀플렉스 와 듀얼 시스템이 있다. 듀플렉스 시스템 - 시스템의 안정성을 고려하여 한쪽의 CPU가 가동중일 때에는 ..
다중 프로그래밍 시스템 다중 프로그래밍 시스템 : 컴퓨터의 주기억장치 상에 2개 이상의 프로그램이 적재되어 , 하나의 프로그램이 CPU를 사용하다가 입출력 동작을 하게되면 상대적으로 느린 입출력 장치를 수행시키는 동안 CPU로 하여금 다른 프로그램을 수행하여 컴퓨터의 효율을 증대시키고자 하는 방법. 이때 다중 프로그래밍이 가능하게 되려면 입출력 작업을 독립적으로 수행할 수 있는 처리기가 있어야 하며 , 보통 이를 I/O Channel이라고 부른다. 따라서 다중 프로그래밍 시스템은 컴퓨터의 느린 입출력 속도와 처리속도가 빠른 CPU사이의 속도 차이를 이용하여 컴퓨터의 이용도 , 처리능력을 증대시키기위한 방안으로 아래와 같은 장단점을 갖는다. - CPU 1개인 컴퓨터 시스템에서 주기억장치에 여러개의 프로그램이 존재하여 멀티태스킹 ..
일괄 처리 시스템 일괄 처리 시스템 ( Bath Processing System) : 일정 시간동안 수집된 변동 자료를 컴퓨터의 입력 자료로 만들었다가 필요한 시점에서 이 자료들을 일괄 입력하여 실행한 후 그 결과를 일괄 출력시켜 주는 방식 입력 매체 -> 일괄 입력 -> CPU -> 일괄 출력 -> 출력장치 의 흐름을 따른다. 대표적인 예시로는 급여 계산 처리 월급 지급 전날까지 변동자료를 모아두었다가 한꺼번에 월급 대장 , 개인별 지급 명세서 , 기타 보고서 등을 작성하는 형태 일괄 처리 시스템은 작업 준비 시간의 낭비를 막기 위해 다량의 작업을 일괄적으로 모아서 처리하는 것으로 전송 속도가 빠른 자기테이프 ,자기디스크 등의 보조기억장치를 이용하여 CPU의 효율을 높일 수 있으나 , 이러한 문제점들이 있다. -작업이 ..
포인터 연산 포인터를 대상으로 메모리의 접근을 위한 * 연산 외에도 증감 연산도 가능하다. 이번에는 연산의 결과를 눈여겨 보자. 포인터 변수에는 주소값을 담고있다. 즉 , 자료형의 크기에 따라 연산이 진행된다. 예제를 살펴보자. 코드를 분석하고 결과값을 예상해보자 직접 짜보고 눈으로 확인하길 바란다 . 결과값은 각자....ㅎㅎ 결론만 얘기하겠다. 포인터를 대상으로 하는 증감 연산의 결과는 다음과 같다. int형 포인터 대상으로 n 증가 n * sizeof(int)의 크기만큼 증가double형 포인터 대상으로 n 증가 n* sizeof(double)의 크기만큼 증가 감소연산 또한 똑같은 값으로 감소한다. 위 내용을 일반화 시켜보면 " TYPE형 포인터를 대상으로 n의 크기만큼 값을 증가 및 감소 시 , n x size..