Download - 운영체제 - 1 학기 총정리
운영체제 - 1 학기 총정리1 조
10611011 양욱모10611012 김민구10611017 김규홍
2014.6.12
OS & Computer
1. computer structure
2. OS
Linux
1. Linux…?
2. Virtual Machine
3. Directory, File
4. HardLink, SoftLink
5. Permission
6. Process
7. Process manage
8. Network
Other – Build JSP
1. Install tomcat,
mysql, java
2. Install JDBC driver
3. Insert Project Files
4. Insert Database
5. External connect
OS & Computer
1. computer structure – 컴퓨터 구조
하드웨어 (HW)
데이터를 처리하는 물리적인 기계장치
프로세서 , 메모리 , 주변장치 .. 등
OS & Computer
1. computer structure – 컴퓨터 구조
소프트웨어 (SW)
명령어로 작성한 프로그램 .
운영체제와 응용 프로그램 ,
시스템 프로그램으로 나뉘어진다 .
OS & Computer
1. computer structure – 컴퓨터 구조
프로세서 (Processor)
컴퓨터 각 부분의 동작을 제어하고
연산을 수행 .
BUS
버스 (Bus)
프로세서를 비롯한 각 장치간 또는
서브시스템을 서로 연결하여 정보를
주고 받을 수 있게 해주는 통로
메모리 (Memory)
데이터를 저장하는 기능을 수행 .
BUS
OS & Computer
2. OS (Operating System – 운영체제 )
운영체제 (OS)
컴퓨터 사용자와 컴퓨터 하드웨어 간
인터페이스를 담당하는 프로그램
OS & Computer
2. OS (Operating System – 운영체제 )
운영체제 목적
- 사용자가 컴퓨터를 좀 더 편리하게 사용 ..
특징
1. 처리능력 향상 , 신뢰도 향상
2. 응답시간 단축
3. 사용가능도 향상 등의 시스템 성능향상
OS & Computer
2. OS (Operating System – 운영체제 )
운영체제 발전과정 – 0 세대
1. 저성능 + 속도 低
2. 직접 기계어를 사용해 명령문 작성
3. 예약을 해야했고 시간내에 끝내지 못할 경우 다른 사용자에게 사용권 넘김
4. 작업을 빨리 마쳐도 남은 시간은 유휴시간
OS & Computer
2. OS (Operating System – 운영체제 )
운영체제 발전과정 – 1 세대
1. 버퍼링 , 스풀링 기법 적용
2. 일괄처리 기법 적용
3. 하드웨어 장치번호 대신 시스템 파일명 사용
4. 작업제어 언어 사용
OS & Computer
2. OS (Operating System – 운영체제 )
운영체제 발전과정 – 2 세대
1. 일괄처리 형태로 처리량을 향상
2. 장치 독립성 – 하드웨어 관리 편해짐
3. 다중 프로그래밍 , 다중 처리 시스템
4. 시분할 시스템 – 사용자와 대화 방식으로 작동
5. 실시간 시스템 ( 트랜젝션 처리 : 사용자와 대화 -> 간단히 요구하고 즉각 응답 )
OS & Computer
2. OS (Operating System – 운영체제 )
운영체제 발전과정 – 3 세대
1. 다중 모드 시스템 ( 일괄처리 + 시분할 처리 + 실시간 처리 + 다중 처리 )
2. 모든 사용자에게 모든 기능을 제공할 수 있도록 제작 ( 하지만 무거움 )
OS & Computer
2. OS (Operating System – 운영체제 )
운영체제 발전과정 – 4 세대
1. 컴퓨터 네트워크와 온라인 처리가 사용됨
2. 마이크로 프로세서의 등장으로 개인 컴퓨터를 가지게 됨
3. “user-friendly” 문구 등장 ( 사용자에게 친숙 )
4. GUI 시스템 도입 (Graphical User Interface)
5. 가상머신 개념 출현
Linux
1. Linux…?
리눅스 – 유닉스 계열의 운영체제
특징
1. 공개 소프트웨어 ( 무료사용 )
2. 유닉스와의 완벽한 호환성 유지
3. 편리한 GUI 환경 제공
Linux
2. Virtual Machine - 가상머신
가상머신 – pc 에 설치되어 있는 운영체제에
가상의 머신을 생성한 후 여기에 다른 운영
체제를 설치할 수 있도록 해주는 응용
프로그램 .
Linux
3. Directory, File – 디렉터리 , 파일
파일 – 관련 있는 정보들의 집합
( 주로 데이터를 저장하는데 사용 )
실행 파일이나 이미지 파일의 경우
바이너리 형태로 데이터가 저장되어
바이너리 파일이라고 함
( 특정 응용프로그램이 있어야 함 )
Linux
4. Hardlink, Softlink – 하드링크 , 소프트링크
Hard Link
원본
Soft Link
Inode 1
Inode 2
원본파일 데이터
원본파일 포인터
Linux
5. Permission – 퍼미션 ( 권한 )
User소유자
Group소유자가 속한 그룹
Other기타
Linux
5. Permission – 퍼미션 ( 권한 )
r (read) – 읽기 4
w (write) – 쓰기 2
x (execute) – 실행 1
-rwxr-xr-xUser Group Other
d : 디렉터리
- : 표준파일
l : 링크파일
b : 블록장치
< 의미 >
소유자는 읽기 , 쓰기 , 실행 가능
그룹은 읽기 , 쓰기 가능
그 외의 사람들은 읽기 , 쓰기 가능한 파일을
의미
Linux
5. Permission – 퍼미션 ( 권한 )
-rwxrwxr--User Group Other
< 의미 >
소유자는 읽기 , 쓰기 , 실행 가능
그룹은 읽기 , 쓰기 , 실행 가능
그 외의 사람들은 읽기 가능한 파일을 의미
만약 권한을 이렇게 바꾸려고 한다면 ?
< 방법 >
chmod 774 파일명
chmod g+w,o-wx 파일명
Linux
6. Process – 프로세스
프로세스 – 디스크에 저장되어 있던 실행
가능한 프로그램이 메모리에 적재되어
운영체제의 제어를 받는 상태
( 현재 시스템에서 실행중인 프로그램 )
@(*&^@$(*&
@(*&^@$(*&
Linux
6. Process – 프로세스
준비
실행
대기
Dispatch :
준비된 프로세스가
프로세서에 할당
Timeout :
운영체제가 제어권을
가지게 될 때 ..
block :
입출력 연산이 필요하거나
새로운 자원요청 등의
문제 발생시…
Wakeup : 대기상태의 원인 해결시
Linux6. Process – 프로세스
프로세스 카운터
프로세스 상태
계정 정보
입출력 상태 정보
메모리 관리 정보……
프로세서 스케줄링 정보
프로세스 식별자
레지스터 저장 영역
각 프로세스에 관한 고유 식별자 지정
생성 , 준비 , 실행 , 중단 .. 등의 상태표시
프로그램 실행을 위한 다음 명령주소 표시
누산기 , 인덱스 레지스터 , 범용 레지스터 ,
조건코드 등에 관한 정보로 컴퓨터 구조에 따라
수나 형태가 달라짐프로세스의 우선순위 , 스케줄링 큐에 대한포인터
사용시간 , 계정번호 , 프로세스 번호 .. 등
입출력 상태 정보 :
특별한 입출력 요구 프로세스에 할당된
입출력장치 , 개방된 (Opened) 파일의 목록 등 .
메모리 관리 정보 :
메모리 영역을 정의하는 하한 및 상한
레지스터 ( 경계 레지스터 ) 또는 페이지 테이블
정보 .
Linux
6. Process management – 프로세스 관리
프로세스를 생성하면서 부모 프로세스라는
상위계층과
자식 프로세스라는 하위계층이
존재하게 된다 .
부모프로세스는 프로그램이나 명령어에
의해 시작되며 ,
자식 프로세스는 부모 프로세스에 의해
만들어지는 것을 말한다 .
하나의 부모 프로세스는 여러 개의
자식 프로세스를 관리한다 .
Linux
6. Process management – 프로세스 관리
fork() : 부모 프로세스와 동일한
프로세스 생성 .
자식 프로세스에는 0 을 반환하고 부모
프로세스에는 자식 프로세스의 PID 를
반환
Parent
Child1Child
2
Chi
ld3
PIDvalue
0
Linux
6. Process management – 프로세스 관리
exit() : 프로세스 종료
종료를 잘못하게 되면
비정상 프로세스 ( 고아 , 좀비 ) 가
발생되며
정상 종료일 경우엔 0 을 반환한다 .
Parent
Child
0
Linux
6. Process management – 프로세스 관리
고아 프로세스 :
부모 프로세스가 먼저 종료되는 경우
발생
( 보통은 자식 프로세스가 먼저 종료 )
Init 프로세스 (OS) 에 의해 관리가
된다 .
Parent
Child
Init(OS)
Linux
6. Process management – 프로세스 관리
좀비 프로세스 :
프로세스 종료 후 메모리상에서
사라지지
않는 프로세스
Parent
Child
자식 프로세스가 종료되면 0 을
반환하는데
커널이 자식 프로세스를 종료시켜서
부모 프로세스에 전달하지 못한경우
발생
< 좀비 예방 / 해결법 >
Wait() 함수나 waitpid() 함수를
사용하여
좀비 생성을 방지할 수 있다 .
이미 좀비가 발생한 경우에는
Kill -9 PID( 좀비 ) 명령을 이용하여
좀비를 제거할 수 있다 .
Linux
7. Network – 네트워크
NAT (Network Address Translation)
사설 IP 주소를 공인 IP 주소로 바꿔주는데
사용하는 통신망의 주소 변환기
NAT
Linux
7. Network – 네트워크
Bridge
두 개의 근거리통신망 (LAN) 을 연결해 주는
통신망 연결장치
Linux
7. Network – 네트워크
DHCP (Dynamic Host Configuration Protocol))
컴퓨터가 네트워크에 접속하면 DHCP 서버가
자신의 목록에서 IP 주소를 선택하여
할당해 주는 것
internet
Linux
7. Network – 네트워크
FTP (File Transfer Protocol))
인터넷상에서 컴퓨터 사이의 파일을
전달하는데 사용되는 프로토콜FTP Client FTP Server
Linux
7. Network – 네트워크
Telnet
멀리 떨어진 자신의 컴퓨터를 직접 연결된
단말기처럼 사용할 수 있게 해주는
인터넷 표준 프로토콜
internet
Linux
7. Network – 네트워크
Network IP Host IP
IP 203 232 180 201
넷마스크 IP 255 255 255 0
브로드캐스트 IP
203 232 180 255
넷마스크 : IP 주소의 네트워크 부분을 가리거나 걸러서 호스트컴퓨터의
주소 부분만이 남도록 하기 위해 0 과 1 이 조합되어 있는 문자열
브로드캐스트 IP : 특정 호스트로 패킷을 전송하는 것이 아니라 특정
네트웍 전체에 패킷을 전송할 때 사용하는 IP
게이트웨이 IP : PC 와 직접 연결이 될 수 없으면 다른 통로를 향해야
하는데 ,
이러한 일을 대신 처리해주는 장치
Linux
7. Network – 네트워크
1. 방화벽 설정에 들어가서 ftp, telnet 을 체크하여 허용을 시켜줌 .
Linux
7. Network – 네트워크
2. (루트접속 이후 ) selinux 설정파일 열기
Linux
7. Network – 네트워크
3. 7 번째 줄의‘ SELINUX=‘ 를 disable 로 변경 .( 처음에는 enforcing 으로 되어있음 )이후 재부팅
Linux
7. Network – 네트워크
4. 재부팅 후 상태 확인 .
Linux
7. Network – 네트워크
1. yum 명령어를 이용해서 telnet, xinetd, telnet-server 설치
Linux
7. Network – 네트워크
2. vi /etc/xinetd.d/telnet 을 입력하여 설정파일을 다음과 같이 편집
Linux
7. Network – 네트워크
3. xinetd 서비스 재시작
Linux
7. Network – 네트워크
4. 자기 컴퓨터 (localhost) 로 로그인을 해봄
Linux
7. Network – 네트워크
1. vsftpd 설치
Linux
7. Network – 네트워크
2. ftp 설치
Linux
7. Network – 네트워크
3. ftp 환경설정 파일 열기 – 자세한 내용은 생략
Linux
7. Network – 네트워크
4. ftp 서비스 재시작
Linux
7. Network – 네트워크
5. 자기 컴퓨터 (localhost) 로 로그인을 해봄
Linux
7. Network – 네트워크
1. httpd 설치
Linux
7. Network – 네트워크
2. httpd 서비스 재시작
Linux
7. Network – 네트워크
3. 주소창에 localhost 입력후 위 페이지가 나오는지 확인
1. Install Java, mysql, tomcat
1. 자바 설치
Other – Build JSP
1. Install Java, mysql, tomcat
2. mysql 설치 ( yum –y install mysql-devel mysql-server)
Other – Build JSP
1. Install Java, mysql, tomcat
3. 톰캣 설치
Other – Build JSP
2. JDBC driver
1. mysql connector 를 받은 뒤 home 폴더에 이동시켜놓기 ( 나중에 복사할 때 쉽게 )
Other – Build JSP
2. JDBC driver
2. cp 명령어를 사용하여 /usr/share/tomcat/lib 폴더에 투척
Other – Build JSP
3. Insert project Files
1. 프로젝트 파일을 home 폴더에 위치 (졸업작품을 예로 들어봄 )
Other – Build JSP
3. Insert project Files
2. cp -r 명령어를 사용하여 /var/lib/tomcat/webapps/ROOT 폴더에 던져버리기 * -r 옵션을 사용하지 않을 경우 에러 !
Other – Build JSP
4. Insert Database – DB 를 사용하지 않을 경우 필요 없음
1. DB(sql) 파일을 home 폴더에 위치
Other – Build JSP
4. Insert Database
2. Sql 콘솔에 접속한 뒤 , DB 를 생성시켜 줌 .
Other – Build JSP
4. Insert Database - DB 를 사용하지 않을 경우 필요 없음
3. mysql 콘솔을 빠져나온 뒤 mysql –u root –p DB 명 < 복원할 sql 파일 경로 명령을 이용하여 DB 복원
Other – Build JSP
4. Insert Database - DB 를 사용하지 않을 경우 필요 없음
4. 다시 mysql 콘솔에 로그인 후 , use DB 명 ; 명령을 입력한 뒤 show tables; 명령을 이용하여 복원된 db 를 확인
Other – Build JSP
result
5. 이후 http://localhost:8080..... 을 웹 브라우저 주소창에 입력을 하면 홈페이지 출력
Other – Build JSP
6. external connect
1. ( 편의상 gedit 사용 ) /etc/tomcat/server.xml 을 에디터로 실행
Other – Build JSP
2. Connector port=“8080“ 이라고 되어있는 부분을 찾음
6. external connect
Other – Build JSP
3. 다음과 같은 내용을 붙여넣어 줌 .
6. external connect
Other – Build JSP
6. external connect
4. 이후 방화벽 설정–포트 항목에 들어가서 8080 포트를 개방시켜 줌 .
Other – Build JSP
Result
5. 다른 컴퓨터 ( 집 ) 에서 접속한 모습
Other – Build JSP
공유기 기능 ( 포트포워딩 ) 을 이용한 여러 기기 접속 ( 휴대전화는 LTE 망으로 접속 )
FIN감사합니다 .