환급미션 29일째..
Part2 시작
운영체제 - Intro 01. 운영체제 오리엔테이션
marp라는 프로그램을 이용해서 강의가 진행될 예정
미리 만들어 둔 교안이 아니라
강의 중에 타이핑과, 그림을 통해 수업이 진행될 예정이라고 하며,
핵심이론, 용어에 집중해 감을 잡는 것에 중점을 두는 것이 좋다고 한다.
IT에 대해 처음 접하는 사람도 따라올 수 있도록 강의를 구성할 예정이라고 한다.
처음 배우는 사람을 위해 용어를 가볍게 짚고 넘어간다고 하는데
용어 뿐 아니라 전체적인 내용을 기본부터 짚고 넘어갈 수 있도록 진행될 예정이라고 한다.
전반적으로 수업이 어떤 방식으로 진행될지에 대한 말 그대로 오리엔테이션이 진행되었다.
아무래도 강사분이 비전공 출신이다 보니,
IT 분야로 입문을 원하는 비전공자들의 마음을 잘 알고 그에 맞는 수업방식을 선택한 것 같아서 좋았다.
마지막으로 운영체제 과목에 대해 소개를 했다.
컴퓨터 사이언스(전공) 필수 과목
소프트웨어+하드웨어 scratch
자료구조, 알고리즘 - 큐, 스택
=> 핵심 이론과 용어에 집중해서 감을 잡고, 전공자 수준으로 넘어서는 관문
운영체제 intro - 01. 운영체제 큰 그림
운영체제 intro - 02. 운영체제 큰 그림과 응용프로그램
- 운영체제 역할 1 : 시스템 자원 (system resource) 관리자 - (*시스템 자원 == 컴퓨터 하드웨어)
•cpu - 각 프로그램이 얼마나 cpu를 사용할지 결정
•memory - 각 프로그램이 어느 주소에 저장될지, 어느 정도의 메모리 공간을 확보해야 할지
•I/O device(모니터, 마우스, 키보드, 통신장치 등) - 어떤 식으로 사용/출력될지
•저장매체(SSD,HDD) - 어디에, 어떻게 저장할지
- 대표적인 운영체제
Windows OS, Mac OS, UNIX
UNIX 계열 OS : 유닉스와 사용법이나 OS 구조가 유사
LINUX OS : 프로그래머, 전공자 , 특히 서버 작업을 하는 환경에서 많이 사용됨
- 운영체제 역할 2 : 사용자/컴퓨터 간의 커뮤니케이션 지원
- 운영체제 역할 3 : 컴퓨터 하드웨어와 프로그램을 제어
OS의 역할을 직관적으로 보여준다.
Shell 이라는 별도의 소프트웨어도 이런 역할을 지원한다고 한다.
- 응용 프로그램이란?
프로그램 = 소프트웨어
소프트웨어 = 운영체제, 응용 프로그램
응용 프로그램 = Application (App)
- 운영체제와 응용 프로그램의 관계
운영체제가 응용 프로그램을 관리
•응용 프로그램간의 권한을 관리 (ex:관리자 권한으로 실행)
•응용 프로그램을 사용하는 사용자도 관리 (ex:로그인)
응용 프로그램은 누구나 만들 수 있다.
•응용 프로그램에 무한 반복문을 넣었다. - os가 관리
•잘못 작성해서 프로그램이 다운 - os가 관리
•모든 파일 삭제 막기 (권한/사용자 관리)
•응용프로그램이 cpu를 모두 사용하려고 한다 - os가 관리
=> 운영체제의 목표 :
응용 프로그램이 효율적으로 동작하도록 지원, 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배/지원
컴퓨터를 켜면 운영체제는 memory에 올라가게 된다. (참고:폰노이만 구조)
소프트웨어 베이직 - c언어의 기초 - 18. 전처리기
전처리기 구문은 다른 프로그램 영역과 독립적으로 처리됨, 소스코드 파일 단위로 효력
- 파일 포함 전처리기
#include는 전처리기에서 가장 많이 사용되는 문법
특정한 파일을 라이브러리로서 포함시키기 위해 사용
가져올 수 있는 파일에 제약없음
#include <파일이름>
위와 같이 선언하면 시스템 디렉토리에서 파일 검색
운영체제마다 시스템 디렉토리가 존재하는 경로가 다를 수 잇다
대표적으로 stdio.h와 같은 헤더파일 등이 시스템 디렉토리에 존재한다.
#include "파일이름"
위와 같이 선언하면 현재 폴더에서 파일을 먼저 검색
현재 폴더에 파일이 없다면 시스템 디렉토리에서 파일 검색
- 헤더파일 작성하기
1. 예제로 하나의 함수를 작성해서 헤더파일로 저장해본다.
--------------
int add(int a, int b)
{
return a+b;
}
-----------------
-> temp.h
2. main.c에서 #include "temp.h"를 불러와본다.
----------------
#include <stdio.h>
#include "temp.h"
int main(void)
{
printf("%d\n", add(3,7));
system("pause");
return 0;
}
---------------
-> 10이 출력된다.
- 매크로 전처리기
프로그램 내에서 사용되는 상수, 함수를 매크로 형태로 저장하기 위해 사용
#define 문법을 사용해 정의할 수 있다.
------------
#include <stdio.h>
#define PI 3.1415926535
int main(void)
{
int r=10;
printf("원의 둘레: %.2f\n", 2 * PI * r);
system("pause");
return 0;
}
-----------------
-> 상수인 PI값을 인식해서 반지름 10인 원의 둘레 값이 출력된다.
* 인자를 가지는 매크로 전처리기
#define 문법에 인자가 포함될 수 있다.
----------------
#include <stdio.h>
#define POW(x) (x*x) //인자 x를 받아서 x의 제곱을 반환
int main(void)
{
int x=10;
printf("x의 제곱: %d\n", POW(x));
system("pause");
return 0;
}
-----------------
-> x의 제곱 출력됨
=> 자주 쓰는 것들은 함수 형태로 미리 define을 이용해 간단히 정의할 수 있다.
=> 소스코드의 양을 획기적으로 줄일 수 있다.
-------------
#include <stdio.h>
#define ll long long
#define ld long double
int main(void)
{
ll a = 9847298571;
ld b = 100.5423;
printf("%.1f\n", a*b);
system("pause");
return 0;
}
---------------
- 조건부 컴파일 ( ex. #ifndef ~ #endif )
컴파일이 이루어지는 영역을 지정하는 기법
다양한 디버깅처리를 할 때나, 소스코드 이식성을 높이고자 할 때 작성됨
c언어로 시스템 프로그램을 작성할 때는 운영체제에 따라서 소스코드가 달라질 수 있다.
운영체제에 따라서 컴파일이 수행되는 소스코드를 다르게 할 수 있다.
#ifndef (if not define) ~ #endif 문법은 대표적인 조건부 컴파일 문법이다.
흔히 헤더파일의 내용이 중복되어 사용되지 않도록 하기 위해 적용
-> 특정한 define, 즉 매크로가 정의되고 있지 않다면 어떤 부분을 정의하겠다! 라는 내용의 문법
-----------------------
#include <stdio.h>
#include "temp.h"
#include "temp.h"
------------------------
이런 식으로
실수로 temp.h를 여러 번 불러왔을 때 오류가 발생하게 되는데,
이런 실수를 하더라도 한 번만 불러올 수 있도록 처리를 하는 데 사용할 수 있다.
아까 작성해두었던 헤더파일인 temp.h 로 돌아가서
--------------
#ifndef _TEMP_H_
#define _TEMP_H_
int add(int a, int b)
{
return a+b;
}
#endif
-----------------
-> ifndef 구문에 의해 단 한 번만 컴파일 될 수 있도록 처리가 되는 것이다.
- 파일 분할 컴파일
자신이 직접 라이브러리를 만들고자 할 때 많이 사용되는 문법
일반적으로 직접 라이브러리를 만들 때 c언어 파일, 헤더파일을 모두 작성해야 한다.
헤더파일, c언어 문법을 나누어서 정의하는 것을 보여준다.
temp.h 헤더파일에 add함수의 형태를 정의하고,
temp.c (헤더파일과 동일한 이름)으로 소스코드를 만들어서 함수의 원형을 정의하도록 한다.
-> 헤더파일과 c언어파일이 완전히 분리가 되기 때문에 깔끔하게 파일을 분할해서 전체 프로젝트를 구성할 수 있게 된다.
올인원 패키지 : 컴퓨터 공학 전공 필수👉https://bit.ly/3i4sCVE
'패스트캠퍼스' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 31회차 미션 (0) | 2020.11.18 |
---|---|
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 30회차 미션 (0) | 2020.11.17 |
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 28회차 미션 (0) | 2020.11.15 |
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 27회차 미션 (0) | 2020.11.14 |
[패스트캠퍼스 수강 후기] 올인원 패키지 : 컴퓨터 공학 전공 필수👉C언어인강 100% 환급 챌린지 26회차 미션 (0) | 2020.11.13 |