2 장 프로그래밍과 운영체제

34
2 장 장장장장장장 장장장장 1. 장장장장장 장장 (Programming Language) 1.1 장장장장장 장장장 장장 장장 1.2 장장 장장장 장장장 장장장장 2. 장장장장 장장 2.1 장장장장 장장장장 3. 장장장장장 장장장장장 3.1 장장장장 (OS : Operating System) 3.2 장장장장장 장장 3.3 장장장장장 (Software)

Upload: shannon-jordan

Post on 01-Jan-2016

53 views

Category:

Documents


4 download

DESCRIPTION

2 장 프로그래밍과 운영체제. 1. 프로그래밍 언어 (Programming Language) 1.1 프로그래밍 언어의 발전 단계 1.2 주요 언어로 작성된 프로그램 2. 프로그램 설계 2.1 프로그램 작성단계 3. 운영체제와 소프트웨어 3.1 운영체제 (OS : Operating System) 3.2 운영체제의 종류 3.3 소프트웨어 (Software). 1. 프로그래밍 언어. 사람과 컴퓨터의 상호작용을 위해 개발된 언어 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 2 장 프로그래밍과 운영체제

2 장 프로그래밍과 운영체제2 장 프로그래밍과 운영체제

1. 프로그래밍 언어 (Programming Language)1.1 프로그래밍 언어의 발전 단계1.2 주요 언어로 작성된 프로그램

2. 프로그램 설계2.1 프로그램 작성단계

3. 운영체제와 소프트웨어3.1 운영체제 (OS : Operating System)3.2 운영체제의 종류3.3 소프트웨어 (Software)

Page 2: 2 장 프로그래밍과 운영체제

사람과 컴퓨터의 상호작용을 위해 개발된 언어• 1950 년대 컴퓨터 개발 이후에 수 많은 프로그래밍 언어가

개발되고 사라졌다• 현재 수 십 종류의 프로그래밍 언어들이 사용

- 컴퓨터 전문가들에 의해 프로그래밍 언어 개발

1. 프로그래밍 언어

Page 3: 2 장 프로그래밍과 운영체제

1950 년 이후로 프로그래밍 언어의 발전 단계

• 1 세대 언어- 0,1 로 구성된 기계어 . 컴퓨터가 사용하는 언어

• 2 세대 언어- 기계어에 가까운 언어 . 기계어를 기호화한 언어

2.1 프로그래밍 언어의 발전 단계

[ 그림 2-4] 프로그래밍 언어의 발전 단계에 따른 세대별 구분

Page 4: 2 장 프로그래밍과 운영체제

• 3 세대 언어- 절차 지향 언어- C, 포트란 , 코볼 , BASIC 언어 등- C 언어는 현재까지도 광범위한 응용 분야에서 많이 사용

• 4 세대 언어- 데이터 베이스 관련 프로그램을 개발할 수 있는 언어- 윈도우 환경에서 개발- 비주얼베이직 , 델파이 , 파워빌더 등

• 5 세대 언어- 객체 지향 언어- 네트웍 또는 웹 환경에서 강한 특성을 가진 언어- Java, C++, C#, ASP, JSP, PHP 등

1.1 프로그래밍 언어의 발전 단계

Page 5: 2 장 프로그래밍과 운영체제

주요 언어로 작성된 프로그램 비교• 주요 프로그램 언어에 대한 전반적인 구조와 기초 지식 습득

어셈블리 언어

1.2 주요 언어로 작성된 프로그램

TEST START 0BEGIN BALR BASE,0

USING BEGIN+2,BASESR 4,4L 2,=F'1'L 3,=F'100'

LOOP AR 4,3SR 3,2BCT 3,*-4BR 14LTORG

BASE EQU 15END

100 부터 1 씩 감소시켜가면서반복하여 숫자를 더한다

Page 6: 2 장 프로그래밍과 운영체제

포트란 프로그램

1.2 주요 언어로 작성된 프로그램

ISUM=0DO 100 I = 1, 100, 1 ISUM=ISUM+I

100 CONTINUEWRITE(6,200) ISUM

200 FORMAT(8X,I5)STOPEND

1 부터 100 까지 1 씩 증가시켜 가면서ISUM 변수에 반복하여 숫자를 더한다

Page 7: 2 장 프로그래밍과 운영체제

코볼 프로그램

1.2 주요 언어로 작성된 프로그램

IDENTIFICATION DIVISION.PROGRAM-ID. HAP.//…………………… 생략CONFIGURATION SECTION.FD PR-F LABEL RECORD OMITTED.01 PR-R PIC X(80).WORKING-STORAGE SECTION.01 LIST. 03 N PIC 9(3). 03 HAP PIC 9(4).PROCEDURE DIVISION.AA. PERFORM BB UNTIL N = 100.

DISPLAY "***1 부터 100 까지의 합 ***"DISPLAY "HAP = " HAP.STOP RUN.

BB. ADD 1 TO NADD N TO HAP.

1 부터 100 까지 1 씩 증가시켜 가면서HAP 변수에 반복하여 숫자를 더하고 결과를 출력하다

Page 8: 2 장 프로그래밍과 운영체제

베이직 프로그램

1.2 주요 언어로 작성된 프로그램

10 SUM = 020 FOR I=1 TO 10030 SUM = SUM + I40 NEXT I50 PRINT SUM60 END

1 부터 100 까지 1 씩 증가시켜 가면서SUM 변수에 반복하여 숫자를 더한다

Page 9: 2 장 프로그래밍과 운영체제

파스칼 프로그램

1.2 주요 언어로 작성된 프로그램

program hap;uses

Crt;var

i,sum:integer;begin

clrscr;i:=0;sum:=0;for i:=0 to 100 dosum := sum + i;writeln('1 부터 100 까지의 합은 ===> ',sum);

end.

1 부터 100 까지 1 씩 증가시켜 가면서SUM 변수에 반복하여 숫자를 더한다

Page 10: 2 장 프로그래밍과 운영체제

C 프로그램

1.2 주요 언어로 작성된 프로그램

#include <stdio.h>#include <conio.h>main(){

int i, sum;clrscr();i=0;sum=0;for (i=0; i<=100; i++) sum = sum + i;printf("1 부터 100 까지의 합은 ===> %d\n",sum);

}

1 부터 100 까지 1 씩 증가시켜 가면서SUM 변수에 반복하여 숫자를 더한다

Page 11: 2 장 프로그래밍과 운영체제

Java 프로그램

1.2 주요 언어로 작성된 프로그램

public class SumTest { public static void main(String[] args) {

int i, sum=0;for ( i = 1 ; i <= 100 ; i = i + 1 ) { sum = sum + i;

}System.out.println("1 부터 100 까지의 합은 " +sum);

}}

1 부터 100 까지 1 씩 증가시켜 가면서SUM 변수에 반복하여 숫자를 더한다

Page 12: 2 장 프로그래밍과 운영체제

자바스크립트 프로그램

1.2 주요 언어로 작성된 프로그램

<HTML> <BODY> <SCRIPT LANGUAGE = "JAVASCRIPT"> var sum=0; var i; for ( i = 1 ; i <= 100 ; i = i + 1 ) { sum = sum + i; } document.write("1 부터 100 까지의 합은 " + sum); </SCRIPT> </BODY></HTML>

1 부터 100 까지 1 씩 증가시켜 가면서SUM 변수에 반복하여 숫자를 더한다

Page 13: 2 장 프로그래밍과 운영체제

주요 언어들의 특징

대부분의 언어들은 순서 , 선택 , 반복 논리를 제공한다 . 각 언어들이 고유의 기능과 특징도 가지지만 , 대부분 비슷한

구문구조를 가진다 어셈블리 언어를 제외한 대부분의 언어들이 우리들이

일반적으로 사용하는 용어를 사용한다 ( 변수명 : sum, hap 등 , 예약어 : for, write, print, main

등 )

C, Java, 자바스크립트는 거의 유사한 구문구조를 가진다 ( 반복문 for 의 구문구조가 거의 똑 같다 )

1.2 주요 언어로 작성된 프로그램

Page 14: 2 장 프로그래밍과 운영체제

집을 짓기 위해서도 설계가 우선되어야 한다 집과 같이 프로그램도 우선 명확한 설계가 이루어져야

한다• 설계가 명확하게 이루어지지 않은 경우

- 결국 오류 발생으로 추가 비용 발생- 오류수정을 위한 비용은 기존에 설계를 명확하게 하든데 드는

비용보다 훨씬 더 많이 소요

프로그램의 정의• 문제를 해결하기 위해 컴퓨터에게 일을 시키는 절차

- 프로그래밍 언어 (C, JAVA 등 ) 로 이러한 절차를 기술한다

2. 프로그램 설계

Page 15: 2 장 프로그래밍과 운영체제

대규모의 소프트웨어 프로젝트는 소프트웨어 공학(Software Engineering) 적인 방법과 절차에 의해 개발

이 책은 프로그램의 원리와 기초과정을 다루고 있으므로 소프트웨어 공학적인 방법론은 다루지 않고 , 대신에 프로그래밍 기초과정으로서 작고 간단한 프로그램의 개발 방법을 설명한다

2.1 프로그램 작성 단계

Page 16: 2 장 프로그래밍과 운영체제

작고 간단한 프로그램 개발을 위한 단계

2.1 프로그램 작성 단계

[ 그림 2-1] 프로그램 작성 안내

Page 17: 2 장 프로그래밍과 운영체제

1 단계 : 입출력을 정의• 실습 예제 2-1

- 두 개의 서로 다른 숫자를 입력 받아 두 숫자의 가감승제와 두 숫자를 비교하여 큰 수를 출력하고 , 두 숫자 사이의 합을 구하는 프로그램을 작성하시오 .

2.1 프로그램 작성 단계

[ 그림 2-2] 프로그램의 입출력 정의

Page 18: 2 장 프로그래밍과 운영체제

2 단계 : 절차를 정의

1) 문제를 명확하게 정의

• 문제 : 두 개의 숫자를 입력 받아 두 숫자의 가감승제와 두 숫자를 비교하여 큰 수를 출력하고 , 두 숫자 사이의 합을 구하는 프로그램

• 두 개의 숫자가 정수인지 , 실수인지 ? --- 정수로 정의• 두 숫자가 같은 경우에는 ? --- 문제에서 서로 다른 두 개의 입력으로

정의• 두 숫자 사이의 합에 두 숫자가 포함되는지 ? --- 포함됨

2.1 프로그램 작성 단계

Page 19: 2 장 프로그래밍과 운영체제

2 단계 : 절차를 정의

2) 문제를 작은 문제로 분해

문제가 복잡하면 나눌 수 있을 때까지 작은 문제로 분해

• 두 수의 입력 부분• 두 수의 가감승제 계산• 두 수중 큰 수를 구한다• 두 수 사이의 정수의 합산• 결과 출력 부분

2.1 프로그램 작성 단계

Page 20: 2 장 프로그래밍과 운영체제

2 단계 : 절차를 정의

3) 각각의 문제들을 순서 , 선택 , 반복의 논리로 절차를 정의하고 , 연결

분해된 문제들을 논리와 연관시켜 정의

• 두 수의 입력 부분 -- 순서• 두 수의 가감승제 계산 -- 순서• 두 수중 큰 수를 구한다 -- 선택• 두 수 사이의 정수의 합산 -- 반복• 결과 출력 부분 -- 순서

2.1 프로그램 작성 단계

Page 21: 2 장 프로그래밍과 운영체제

2 단계 : 절차를 정의

2.1 프로그램 작성 단계

[ 그림 2-3] 순서도를 사용하여 절차와 기억장소 ( 변수 ) 의 변화를 나타낸 예

Page 22: 2 장 프로그래밍과 운영체제

3 단계 : 프로그램 코드 작성• 순서도 ( 설계도 ) 에 따라 프로그램을 작성

<HTML><BODY><SCRIPT>

var 첫번째수 , 두번째수 , 덧셈 , 뺄셈 , 곱셈 , 나눗셈var 큰수 , 작은수 , 임시변수 , 합 =0;첫번째수 = parseInt(prompt(" 첫 번째 수 입력 "));두번째수 = parseInt(prompt(" 두 번째 수 입력 "));덧셈 = 첫번째수 + 두번째수 ;뺄셈 = 첫번째수 - 두번째수 ;곱셈 = 첫번째수 * 두번째수 ;나눗셈 = 첫번째수 / 두번째수 ;if ( 첫번째수 > 두번째수 ){

큰수 = 첫번째수 ;작은수 = 두번째수 ;

}else{

작은수 = 첫번째수 ;큰수 = 두번째수 ;

}

2.1 프로그램 작성 단계

Page 23: 2 장 프로그래밍과 운영체제

임시변수 = 작은수 ;while ( 임시변수 <= 큰수 ){

합 = 합 + 임시변수 ;임시변수 = 임시변수 +1;

}document.write(" 덧셈결과 : " + 덧셈 + "<BR>");document.write(" 뺄셈결과 : " + 뺄셈 + "<BR>");document.write(" 곱셈결과 : " + 곱셈 + "<BR>");document.write(" 나눗셈결과 : " + 나눗셈 + "<BR>");document.write(" 작은수 : " + 작은수 + " 큰수 : " + 큰수 + "<BR>");document.write(" 작은수 : " + 작은수 + " 큰수 : " + 큰수 +" 사이의 합은 "+ 합 );

</SCRIPT></BODY>

</HTML>

1.1 프로그램 작성 단계

Page 24: 2 장 프로그래밍과 운영체제

프로그램이 실행되는 환경을 이해하기 위해 운영체제를 학습해야 한다

3. 운영체제와 소프트웨어

Page 25: 2 장 프로그래밍과 운영체제

컴퓨터 개발 초기• 운영체제가 없거나 컴퓨터 회사별로 서로 다른 운영체제를

제공하였다 .

- 컴퓨터 회사별로 컴퓨터의 사용방법이 다르다- 특정 컴퓨터를 사용하던 사용자가 다른 컴퓨터를 사용하기 위해서는

동작방법을 다시 배워야 한다

3.1 운영체제 (OS:Operating System)

Page 26: 2 장 프로그래밍과 운영체제

운영체제• “ 사용자가 컴퓨터를 편리하게 사용할 수 있도록 하드웨어 자원을

관리해주는 소프트웨어”- 사용자가 운영체제만 배우면 같은 운영체제를 사용하는 어떠한 종류

( 회사 ) 의 컴퓨도 쉽게 사용할 수 있다- 운영체제는 항상 하드웨어 자원을 최적의 상태로 유지한다

- 사용자는 각 회사의 컴퓨터를 배우지 않고 , 운영체제를 배워 모든 컴퓨터를 사용한다 .

3.1 운영체제 (OS:Operating System)

Page 27: 2 장 프로그래밍과 운영체제

1950 년대 컴퓨터가 개발된 이후에 운영체제는 꾸준히 발전되어 왔다• 퍼스널 컴퓨터가 등장 이후로 마이크로소프트 사의 운영체제가 표준 운영체제로 자리를 잡았다

• DOS(Disk Operating System)- 퍼스널 컴퓨터 개발 초기의 운영체제- 마이크로소프트사의 MS-DOS 와 DR-DOS, Novel DOS 등이

있었으나 MS-DOS 가 많이 사용되었다

3.2 운영체제의 종류

[ 그림 2-7] MS-DOS 화면

Page 28: 2 장 프로그래밍과 운영체제

• 윈도우 계열 운영체제- 명령어 입력 방식이 아닌 마우스로 편리하게 사용할 수 있는

GUI(Graphical User Interface) 방식의 운영체제- MS-W indow=>Windows XP=>Windows

Vista=>Windows 7 등으로 발전- 현재 마이크로소프트사는 퍼스널 컴퓨터 운영체제 시장을 거의 독점하고 있다

3.2 운영체제의 종류

[ 그림 2-8] MS- 윈도우 3.1 화면 [ 그림 2-9] 윈도우 7의 시작화면과 초기화면

Page 29: 2 장 프로그래밍과 운영체제

• 유닉스 (Unix) 계열 운영체제- 1969 년 미국의 AT&T 사의 벨 연구소에서 개발된 운영체제- 중 .대형 컴퓨터의 운영체제- 현재 솔라리스와 FreeBSD 유닉스 운영체제로 발전- 중대형 컴퓨터에서 가장 많이 사용되는 운영체제

3.2 운영체제의 종류

[ 그림 2-10] FreeBSD 운영체제와 솔리리스 운영체제

Page 30: 2 장 프로그래밍과 운영체제

• 리눅스 (Linux) 운영체제- 1991 년 핀란드 헬싱키 대학교 학생인 리누스 토발즈에 의해

만들어진 운영체제- 유닉스를 PC 에서 다용할 수 있게 만든 운영체제- PC 또는 인터넷 서버용 운영체제로 많이 사용- 현재 리눅스 배포판인 레드햇 (Red Hat), 데비안 (Debian) 등이

제공

3.2 운영체제의 종류

[ 그림 2-11] 리눅스 배포판인 레드햇과 데비안 화면

Page 31: 2 장 프로그래밍과 운영체제

• Mac 운영체제- 1984 년 미국의 애플 컴퓨터사가 매킨토시 계열 컴퓨터의

운영체제로 개발- 마우스를 사용한 최초의 GUI 형태의 운영체제

3.2 운영체제의 종류

[ 그림 2-12] Mac 운영체제 화면

Page 32: 2 장 프로그래밍과 운영체제

• 스마트폰 운영체제- 스마트폰 시장의 경쟁은 운영체제의 경쟁이라 해도 과언이 아니다- 현재 스마트폰에서 제공되는 운영체제로는 구글의 안드로이드 , 심비안 , 애플의 iOS, 블랙베리 OS, 윈도폰 7, 삼성 바다 OS 등이 있다

3.2 운영체제의 종류

[ 그림 2-13] 2011 년 스마트폰 운영체제의 점유율

Page 33: 2 장 프로그래밍과 운영체제

대부분의 응용프로그램들은 운영체제 상에서 실행된다 .• 대부분의 소프트웨어는 운영체제 별로 분류되어 판매된다

- 소프트웨어가 동작할 때 컴퓨터 하드웨어 자원에 접근하게 되는데 , 이 경우 운영체제의 기능들을 이용한다

3.3 소프트웨어 (Software)

[ 그림 2-13] 운영체제와 소프트웨어의 실행

Page 34: 2 장 프로그래밍과 운영체제

감사합니다