Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코드로 시작하는 자바 첫걸음
- 자바의 정석 기초편 ch4
- 스프링 db1 - 스프링과 문제 해결
- 타임리프 - 기본기능
- 2024 정보처리기사 수제비 실기
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch11
- jpa - 객체지향 쿼리 언어
- 스프링 mvc1 - 서블릿
- 자바의 정석 기초편 ch3
- 2024 정보처리기사 시나공 필기
- 자바의 정석 기초편 ch9
- 자바의 정석 기초편 ch12
- 스프링 입문(무료)
- 스프링 mvc2 - 검증
- 게시글 목록 api
- 자바의 정석 기초편 ch2
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch8
- 자바의 정석 기초편 ch6
- 자바의 정석 기초편 ch7
- jpa 활용2 - api 개발 고급
- 스프링 db2 - 데이터 접근 기술
- 자바의 정석 기초편 ch1
- 자바의 정석 기초편 ch13
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch5
- @Aspect
- 스프링 고급 - 스프링 aop
Archives
- Today
- Total
나구리의 개발공부기록
CHAPTER 01 - 운영체제의 특징(1) 본문
2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/실기 11강 - 응용 SW 기초 기술 활용
CHAPTER 01 - 운영체제의 특징(1)
소소한나구리 2024. 7. 9. 19:082024년도 수제비 실기책(6판) 내용
1. 운영체제 종류
1) 운영체제(OS; Operating System) 의 개념
- 사용자가 컴퓨터의 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어
- 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영함으로써 사용자에게 편리성을 제공함
- 컴퓨터 시스템과 사용자 간의 인터페이스 기능을 담당함
(1) 운영체제의 일반적 특징
특징 | 설명 |
사용자 편리성 제공 | 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영함 |
인터페이스 기능을 담당 | 컴퓨터 시스템과 사용자를 연결함 |
스케줄링 담당 | 다중 사용자와 다중 응용 프로그램 환경하에서 자원의 현태 상태를 파악하고 자원 분배를 위한 스케줄링을 담당 |
자원 관리 | CPU, 메모리 공간, 기억장치, 입출력 장치 등의 자원을 관리 |
제어 기능 | 입출력 장치와 사용자 프로그램을 제어 |
(2) 운영체제에서 커널의 기능
- 운영체제는 크게 인터페이스(쉘) + 커널의 구조
- 운영체제의 핵심적인 기능들이 커널에 모였다면, 인터페이스(쉘)는 이러한 커널을 사용자가 보다 편리하게 사용할 수 있게 해줌
[1] 쉘(Shell)
- 사용자가 입력시킨 명령어 라인을 읽어 필요한 시스템 기능을 실행시키는 명령어 해석기
- 시스템과 사용자 간의 인터페이스를 제공하며 여러 가지 내장 명령어를 가지고 있음
[2] 커널(Kernel)
- 운영체제의 핵심이 되는 기능들이 모여 있는 컴퓨터 프로그램
- 컴퓨터가 부팅 될 때 주기억 장치에 적재된 후 상주하면서 실행하며, 프로그램과 하드웨어 간의 인터페이스 역할을 담당
기능 | 설명 |
프로세스 관리 | - 프로세스 스케줄링 및 동기화 관리 담당 - 프로세스 생성과 제거, 시작과 정지, 메세지 전달 등의 기능 담당 |
기억장치 관리 | 프로세스에게 메모리 할당 및 회수 관리 담당 |
주변장치 관리 | 입/출력 장치 스케줄링 및 전반적인 관리 담당 |
파일 관리 | 파일 관리 파일의 생성과 삭제, 변경, 유지 등의 관리 담당 |
2) 운영체제의 종류
(1) Windows 운영체제
- MS-DOS의 멀티태스킹 기능과 GUI 환경을 제공하는 마이크로 소프트사가 개발한 운영체제
- Windows 95를 발표한 이후 98, ME, XP, 7, 8, 10, 11 등의 버전으로 지속적 출시가 되고있음
[1] Windows OS 특징
- 그래픽 사용자 인터페이스(GUI) 제공 : 키보드 없이 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행하는 그래픽 기반의 인터페이스 방식
- 선점형 멀티태스킹 방식 제공 : 동시에 여러 개의 프로그램을 실행하면서 운영체제가 각 작업의 CPU 이용 시간을 제어
- 자동감지 기능 제공 : 하드웨어를 설치했을 때 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 자동감지 기능 제공
- OLE (Object Linking and Embedding) 사용 : 개채를 현재 작성 중인 문서에 자유롭게 연결 또는 삽입하여 편집할 수 있게 하는 기능 제공
(2) 유닉스(Unix) 계열 운영체제
- 데니스 리치와 켄 톰슨(Ken Thompson) 등이 함께 벨 연구소를 통해 만든 운영체제이며, 90% 이상 C 언어로 구현되어 있는 운영체제로 범용 다중 사용자 방식의 시분할 운영체제
- 처음부터 다양한 시스템에 서로 인식할 수 있고, 멀티 태스킹을 지원하도록 설계됨
[1] Unix 계열 운영체제 특징
- 대화식 운영체제 기능 제공: 프롬프트(컴퓨터 터미널에서 CLI의 명령 대기모드)가 나타난 상태에서 사용자가 명령을 입력하면 시스템은 그 명령을 수행하는 사용자 명령 기반의 대화식 운영체제 기능을 제공
- 다중 작업 기능 제공: 다수의 작업(프로세스)이 중앙처리장치(CPU)와 같은 공용자원을 나누어 사용하여 한 번에 하나 이상의 작업을 수행하는 기능 제공
- 다중 사용자 기능 제공: 여러 대의 단말(키보드와 모니터)이 하나의 컴퓨터에 연결되어서, 여러 사람이 동시에 시스템을 사용하여 각각의 작업을 수행할 수 있는 기능 제공
- 이식성 제공: 90% 이상 C언어로 구현되어 있고, 시스템 프로그램이 모듈화 되어 있어서 다른 하드웨어 기종으로 쉽게 이식 가능
- 계층적 트리 구조 파일 시스템 제공 : 유닉스는 계층적 트리 구조를 가짐으로써 통합적인 파일 관리가 용이
[2] 리눅스(Linux) 운영체제
- 유닉스를 기반으로 개발되고, 소스 코드가 공개된 오픈 소스 기반의 운영체제
- 데비안, 레드헷, Fedora, Ubuntu, CentOS와 같이 다양하게 출시 되고 있음
- 유닉스 계열의 운영체제이므로 대화식 운영체제 , 다중 작업 기능, 다중 사용자 기능, 이식성, 계층적 트리 구조 파일 시스템을 가짐
[3] 맥(Mac) 운영체제
- 애플이 유닉스를 기반으로 개발한 그래픽 사용자 인터페이스 기반의 운영체제
- 1999년 OS X로 업데이트를 하였고, 이후에는 클라이언트 버전, 서버 제품 등으로 제품군을 확대하였고, 시에라, 모하비 등을 지속적으로 발표하고 있음
[4] 안드로이드(Android) 운영체제
- 휴대 전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트 등)을 포함하고 있는 운영체제
[1] 안드로이드 특징
- 리눅스 기반 : 리눅스 커널 위에서 동작
- 자바와 코틀린 언어 : 고수준 언어를 사용해 응용 프로그램을 작성하고 생산성이 높으며 전문 지식이 없어도 개발 가능
- 런타임 라이브러리 : 컴파일된 바이트 코드 구동 가능
- 안드로이드 소프트웨어 개발 키트(SDK) : 응용프로그램을 개발하는데 필요한 각종 도구와 API를 제공
3) 운영체제 발달 과정
세대 | 시스템 | 설명 |
1세대 | 일괄 처리 시스템 | 하나의 작업이 끝나기 전까지는 다른 작업을 할 수 없는 시스템 |
2세대 | 시분할 시스템 (Time Sharing System) |
여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리하는 시스템 ** CPU 스케줄링과 다중 프로그래밍을 이용해서 각 사용자들에게 컴퓨터 자원을 시간적으로 분할 하여 사용할 수 있게 해주는 대화식 시스템 |
다중 처리 시스켐 | 컴퓨터 시스템 한 대에 둘 이상의 중앙처리장치(CPU)를 이용하여 병렬로 처리하는 시스템 | |
3세대 | 범용 시스템 | 특별히 정해진 용도로만 사용되는 것이 아니라 메모리에 적재되어 실행되는 프로그램에 따라 여러 가지 용도로 사용하는 시스템 |
4세대 | 분산 처리 시스템 | 서로 다른 장소에 위치한 컴퓨터 시스템에 기능과 자원을 분산시켜 상호 협력할 수 있는 시스템 |
2. 운영체제 기본 명령어 활용
1) 운영체제 제어
- CLI(Command Line Interface) : 사용자가 직접 명령어를 입력, 컴퓨터에 명령을 내리는 방식
- GUI(Graphic User Interface) : 마우스로 화면을 클릭하여 그래픽 위주로 컴퓨터를 제어하는 방식
2) Windows 운영체제의 기본 명령어
- CLI 명령어를 입력하기 위해서는 명령창이 필요하며 Help를 명령 창에 입력함으로 써 입력이 가능하며 파일을 이동하고 프로그램을 실행하는 것과같은 행동을 GUI 명령으로 제어할 수 있음
(1) 기본 명령어
명령어 | 설명 |
ATTRIB | 파일 속성을 표시하거나 바꿈 |
CALL | 한 일괄 프로그램에서 다른 일괄 프로그램을 호출 |
CD | 현재 디렉터리 이름을 보여주거나 바꿈 |
CHKDSK | 디스크를 검사하고 상태 보고서를 표시 |
CLS | 화면을 지움 |
CMD | Windows 명령 프롬프츠 창을 열어줌 |
COMP | 두 개 이상의 파일을 비교 |
DISKPART | 디스크 파티션 속성을 표시하거나 구성 |
ECHO | 메세지를 표시하거나 ECHO를 사용 또는 사용하지 않음 |
ERASE | 하나 이상의 파일을 지움 |
EXIT | CMD, EXE 프로그램(명령 인터프리터)을 마침 |
3) 리눅스/유닉스 계열의 기본 명령어
- 쉘에서 입력할 수 있으며 리눅스는 최상위 유저를 CLI 환경에서 #으로 표시하며 일반 유저를 $로 표시하고 명령어에 대한 도움말은 --help, -h를 명령어 뒤에 붙임으로써 확인할 수 있음
(1) 기본 명령어
구분 | 명령어 | 설명 |
시스템 관련 |
uname -a | - 시스템의 모든 정보를 확인하는 명령어 - 시스템 이름, 사용 중인 운영체제와 버전, 호스트명, 하드웨어 정보 등을 표시 |
uname -r | 운영체제의 배포버전을 출력하는 명령어 | |
cat | 파일의 내용을 화면에 출력하는 명령어 | |
uptime | 시스템의 가동 시간과 현재 사용자 수, 평균 부하량 등을 확인하는 명령어 | |
사용자 | id | 사용자의 로그인명, id 그룹, id 등을 출력하는 명령 |
last | 시스템의 부팅부터 현재까지의 모든 사용자의 로그인과 로그아웃에 대한 정보를 표시하는 명령어 | |
who | 현재 접속 사용자 정보를 표시하는 명령어 | |
파일 처리 | ls | 자신이 속해있는 폴더 내에서의 파일 및 폴더들을 표시하는 명령어 |
pwd | - print working directory의 약자 - 현재 작업 중인 디렉토리의 절대 경로를 출력하는 명령어 |
|
rm | 파일 삭제 명령어 | |
cp | 파일 복사 명령어 | |
mv | 파일 이동 명령어 | |
프로세스 | ps | 현재 실행되고 있는 프로세스 목록을 출력하는 명령어 |
pmap | 프로세스 ID를 기준으로 메모리 맵 정보를 출력하는 명령 | |
kill | 특정 PID 프로세스 종료 명령어 | |
파일 권한 | chmod | 특정 파일 또는 디렉토리의 퍼미션 수정 명령어 |
chown | 파일이나 디렉토리의 소유자, 소유 그룹 수정 명령어 | |
네트워크 | ifconfig | 네트워크 인터페이스를 설정하거나 확인하는 명령어 |
host | 도메인(호스트)명은 알고 있는데 ip 주소를 모르거나 혹은 그 반대의 경우에 사용하는 명령어 | |
압축 | tar | 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령어(압축은 불가) |
gzip | 파일을 묶거나 풀 수는 없지만 압축을 담당하는 명령어 | |
검색 | grep | 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자 할 때 사용하는 명령어 |
find | 특정한 파일을 찾는 명령어 | |
파일 이동 | cp | 디렉토리를 복사할 때 사용하는 명령어 |
rsync | 로컬 또는 원격에 파일과 디렉토리를 복사하고 동기화하는 명령어 | |
디스크 사용 |
df | 시스템에 마운트된 하드디스크의 남은 용량을 확인할 때 사용하는 명령어 |
du | 파일 사이즈를 킬로 바이트 단위로 보여주는 명령어 | |
디렉터리 이동 | cd | 디렉토리를 이동하는 명령어 |
(2) 리눅스/유닉스 운영체제의 파일 접근 권한 관리
[1] 개요
- 리눅스/유닉스 시스템에서 사용자 혹은 프로세스가 파일을 읽거나 실행하면 open(), read(), write()와 같은 시스템 호출이 수행되고, 각 파일의 정보가 저장된 i-node 값을 읽게됨
- i-node 에는 각 파일의 물리적 위치, 생성/수정/사용 날짜 등의 정보와 더불어 파일 소유자/그룹, 접근 권한 등의 파일 접근제어와 관련된 정보가 수록되며, 해당 정보를 이용하여 DAC 기반 접근제어를 수행함
[2] 파일 접근제어 매커니즘
* 접근 권한 유형(설정 명령어: chown, chgrp)
접근 권한 | 설명 |
User | 파일을 소유하고 있는 사용자(Owner) |
Group | 소유자를 제외하고 파일과 같은 그룹에 속해있는 모든 사용자 모임 |
Other | 그 밖의 사용자 |
* 접근 권한 모드(설정 명령어: chmod)
User | Group | Other | ||||||
R | W | X | R | W | X | R | W | X |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
- Read, Write, eXcute로 파일을 읽거나(r), 쓰거나(w), 실행(x) 할 수 있는 3가지 모드로 구분함
- 파일이 rwx 모드를 지원한다면 그 파일을 읽고, 쓰고, 실행할 수 있다는 것을 의미함
[3] 접근 권한 변경(chmod)
- 명령어 : chmod [-R] permission file_name1 | directory_name1 [file_name2 | directory_name2 ...]
- chmod 명령은 기존 파일 또는 디렉토리에 대한 접근 권한을 변경할 때 사용하며 해당 파일 소유주나 슈퍼유저(root)만이 실행 할 수 있음
- -R 옵션 : 하위 디렉토리와 파일의 권한까지 변경
- permission : 기호나 8진수로 접근 권한을 지정
- 파일의 접근 권한을 세개의 8진수로 기술할 수 있음, r = 4, w = 2, x = 1
구분 | 설명 |
대상 | u(user), g(group), o(other), a(all) |
연산자 | +(추가), -(제거), =(지정) |
접근 권한 | r(읽기), w(쓰기), x(실행) |
chmod o-w yoom.c # yoom.c에 대한 other의 쓰기 권한을 제거
chmod 664 yoom.c # yoom.c의 접근 권한은 664(rw-rw-r--)
chmod go-w yoom.c # yoom.c의 group과 other의 쓰기 권한을 제거
chmod a=rw yoom.c # yoom.c의 모든 사용자 권한을 rw로 변경(rw-rw-rw)
chmod g+w, o-x yoom.c # yoom.c의 group에는 읽기 권한을 추가, other에는 실행 권한을 제거
chmod 777 yoom.c # yoom.c의 권한을 777(rwxrwxrwx)로 변경(모든 사용자에게 rwx권한 부여)
chmod 664 yoom.c # yoom.c의 권한을 664(rw-rw-r--)로 변경(user,group에 rw, other에 r 권한 부여)
chmod 600 yoom.c # yoom.c의 권한을 600(rw-------)로 변경(user에 rw권한 부여)
'2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비) > 실기 11강 - 응용 SW 기초 기술 활용' 카테고리의 다른 글
CHAPTER 02 - 네트워크 기초 활용하기(2) (0) | 2024.07.13 |
---|---|
CHAPTER 02 - 네트워크 기초 활용하기(1) (0) | 2024.07.10 |
CHAPTER 01 - 운영체제의 특징(기출문제, 예상문제) (0) | 2024.07.10 |
CHAPTER 01 - 운영체제의 특징(3) (0) | 2024.07.10 |
CHAPTER 01 - 운영체제의 특징(2) (0) | 2024.07.09 |